diff options
Diffstat (limited to 'source/blender/editors/interface/interface_handlers.c')
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 26b9b82d67f..9d30ad992c9 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -8714,13 +8714,23 @@ static uiBut *ui_context_button_active(const ARegion *region, bool (*but_check_c /* find active button */ LISTBASE_FOREACH (uiBlock *, block, ®ion->uiblocks) { LISTBASE_FOREACH (uiBut *, but, &block->buttons) { + if (but->flag & UI_BUT_ACTIVE_OVERRIDE) { + activebut = but; + break; + } if (but->active) { activebut = but; + break; } - else if (!activebut && (but->flag & UI_BUT_LAST_ACTIVE)) { + if (but->flag & UI_BUT_LAST_ACTIVE) { activebut = but; + break; } } + + if (activebut) { + break; + } } if (activebut && (but_check_cb == NULL || but_check_cb(activebut))) { |