diff options
Diffstat (limited to 'source/blender/editors/interface/interface_handlers.c')
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index fe540c3624c..14df5ec68ac 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -439,11 +439,11 @@ typedef struct uiHandleButtonData { float ungrab_mval[2]; #endif - /* menu open (watch UI_screen_free_active_but) */ + /* Menu open, see: #UI_screen_free_active_but_highlight. */ uiPopupBlockHandle *menu; int menuretval; - /* search box (watch UI_screen_free_active_but) */ + /* Search box see: #UI_screen_free_active_but_highlight. */ ARegion *searchbox; #ifdef USE_KEYNAV_LIMIT struct uiKeyNavLock searchbox_keynav_state; @@ -11674,8 +11674,20 @@ bool UI_textbutton_activate_but(const bContext *C, uiBut *actbut) /** \name Public Utilities * \{ */ +void UI_region_free_active_but_all(bContext *C, ARegion *region) +{ + LISTBASE_FOREACH (uiBlock *, block, ®ion->uiblocks) { + LISTBASE_FOREACH (uiBut *, but, &block->buttons) { + if (but->active == NULL) { + continue; + } + ui_but_active_free(C, but); + } + } +} + /* is called by notifier */ -void UI_screen_free_active_but(const bContext *C, bScreen *screen) +void UI_screen_free_active_but_highlight(const bContext *C, bScreen *screen) { wmWindow *win = CTX_wm_window(C); |