Make uiLists placed in popups usable
authorJulian Eisel <eiseljulian@gmail.com>
Wed, 8 Jun 2016 13:51:01 +0000 (15:51 +0200)
committerJulian Eisel <eiseljulian@gmail.com>
Wed, 8 Jun 2016 14:05:23 +0000 (16:05 +0200)
commitfc96110bb56f15b947de8e29a12731fe35aa8dff
tree87d6bf75570179c37ba2fed63cb2bc58c10f177e
parent37fc4b575fcf8bff2401aefa84df5537fe0d744f
Make uiLists placed in popups usable

It's still not completely working - there are still some glitches - but far better than before.
To make buttons of the uiList work, you have to add a 'check' callback to the operator that invokes the menu. Only if it returns True, the uiList gets refreshed. To avoid this we have to make the region refresh tagging in the entire button handling a bit smarter.

Changes I had to do:
* Call uiList handling from menu/popup handling if needed.
* Make uiList handling use special popup refresh tag if placed in menu.
* Allow popups invoked from py operator to tag for refresh by using operator 'check' callback.
* Tag popup for refresh when resizing uiList.

Mostly fixes T48612.
source/blender/editors/interface/interface_handlers.c
source/blender/editors/interface/interface_templates.c
source/blender/windowmanager/intern/wm_operators.c