Page MenuHome

ID search menu issue with linked data-blocks
Closed, ResolvedPublicTO DO


Most ID selectors (like e.g. the 'target' ones in constraints and modifiers) do not show difference between local and linked IDs. Even worse, they do not allow to select linked ones when a local one exists with the same name.

This has been the case since ages, but with library overrides that now systematically generate those kind of local/linked same-name couples of IDs, it's becoming even more annoying.

Obvious solution would be to show the L prefix for linked data, and to decouple shown name from the one used to actually select the ID.

A first simple & stupid attempt to fix this was rB4669c3692cc4: Add library-hint to datablock search menus. (this had to be reverted), but unfortunately the issue is more complex and requires more involved changed in the UI menu code…

Event Timeline

Bastien Montagne (mont29) changed the task status from Needs Triage to Confirmed.Jan 16 2020, 10:29 AM
Bastien Montagne (mont29) created this task.
Bastien Montagne (mont29) changed the subtype of this task from "Report" to "Bug".

@Julian Eisel (Severin) finally got to make a report about that thing. Assigning to you as you worked on it a bit in early November 2019, but did not had time to finish iirc?

Julian Eisel (Severin) changed the subtype of this task from "Bug" to "To Do".Jan 23 2020, 12:37 PM

Indeed, although I don't remember why I stopped work on it or what was missing. I still have the code around though.

While this should definitely fixed, I can't check right now so will tag as TODO (don't think we can consider this a bug).
Feel free to be pushy if I don't get back to this soon enough ;)

Julian Eisel (Severin) closed this task as Resolved.Apr 10 2020, 8:34 PM

Committed rBd6cefef98f87, which addresses all issues mentioned here.

Checking the old code I had for it, there was a bug where the menu would not stay active (e.g. it wouldn't highlight and input didn't work). It was caused by passing a custom handling callback which also triggered a warning print in some cases because it was overriding the previously set callback from the block. I concluded that we don't need the callback anymore though, I think since rBd9ac4653e70c. So things were simple for once :)