Fix T80258: UILayout.prop_search() issues with datablock names
If the search menu was used for a string property, and a data-block was selected from the search, the value set would be an invalid name. The property would get the modified UI string, not the proper data name set. This problem was already once solved in rB249ccab111ac, but resurfaced in rB937d89afba36. Now only use the modified UI string if requires_exact_data_name is not true. Note: the comments in rB249ccab111ac [reg. library hints and string properties, also that pointer properties are preferred over string properties when dealing with IDs] still apply. Reviewers: severin, campbellbarton Subscribers:
This commit is contained in:
parent
defe21a7bb
commit
cb0b0416f4
Notes:
blender-bot
2023-02-14 03:29:37 +01:00
Referenced by issue #80258, Crash on choosing Lattice in panel property Referenced by issue #80203, Crash when changing torus properties
|
@ -489,7 +489,7 @@ void ui_rna_collection_search_update_fn(const struct bContext *C,
|
|||
/* If no item has an own icon to display, libraries can use the library icons rather than the
|
||||
* name prefix for showing the library status. */
|
||||
int name_prefix_offset = cis->name_prefix_offset;
|
||||
if (!has_id_icon && cis->is_id) {
|
||||
if (!has_id_icon && cis->is_id && !requires_exact_data_name) {
|
||||
cis->iconid = UI_library_icon_get(cis->data);
|
||||
/* No need to re-allocate, string should be shorter than before (lib status prefix is
|
||||
* removed). */
|
||||
|
|
Loading…
Reference in New Issue