diff options
author | Julian Eisel <julian@blender.org> | 2022-05-20 17:27:08 +0300 |
---|---|---|
committer | Julian Eisel <julian@blender.org> | 2022-05-20 17:35:13 +0300 |
commit | 8d65895af8f10395dccf305579210c7dae285999 (patch) | |
tree | d58f4e9ec78692e6818f2c42a9a25458ea182b17 /source/blender/editors/interface/interface_handlers.c | |
parent | de561280fc0b693dadf13dcb77d90b6363ca2c40 (diff) |
UI: Get rid of redundant UI_BUT_IMMEDIATE button flag
This flag was used to activate the hotkey input buttons (e.g. for
"Assign Shortcut") when opened in a popup. Since this was added, other
more generalized ways of getting this same behavior were implemented.
Had to tweak the hotkey button event handling a bit, but it seems to
behave exactly as before now.
Diffstat (limited to 'source/blender/editors/interface/interface_handlers.c')
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 3d347fab89c..bf2d7956990 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -4511,7 +4511,8 @@ static int ui_do_but_HOTKEYEVT(bContext *C, BLI_assert(but->type == UI_BTYPE_HOTKEY_EVENT); if (data->state == BUTTON_STATE_HIGHLIGHT) { - if (ELEM(event->type, LEFTMOUSE, EVT_PADENTER, EVT_RETKEY) && event->val == KM_PRESS) { + if (ELEM(event->type, LEFTMOUSE, EVT_PADENTER, EVT_RETKEY, EVT_BUT_OPEN) && + (event->val == KM_PRESS)) { but->drawstr[0] = 0; hotkey_but->modifier_key = 0; button_activate_state(C, but, BUTTON_STATE_WAIT_KEY_EVENT); @@ -4534,13 +4535,9 @@ static int ui_do_but_HOTKEYEVT(bContext *C, if (event->type == LEFTMOUSE && event->val == KM_PRESS) { /* only cancel if click outside the button */ if (ui_but_contains_point_px(but, but->active->region, event->xy) == false) { - /* data->cancel doesn't work, this button opens immediate */ - if (but->flag & UI_BUT_IMMEDIATE) { - ui_but_value_set(but, 0); - } - else { - data->cancel = true; - } + data->cancel = true; + /* Close the containing popup (if any). */ + data->escapecancel = true; button_activate_state(C, but, BUTTON_STATE_EXIT); return WM_UI_HANDLER_BREAK; } @@ -8501,14 +8498,6 @@ static void button_activate_init(bContext *C, } button_activate_state(C, but, BUTTON_STATE_HIGHLIGHT); - /* activate right away */ - if (but->flag & UI_BUT_IMMEDIATE) { - if (but->type == UI_BTYPE_HOTKEY_EVENT) { - button_activate_state(C, but, BUTTON_STATE_WAIT_KEY_EVENT); - } - /* .. more to be added here */ - } - if (type == BUTTON_ACTIVATE_OPEN) { button_activate_state(C, but, BUTTON_STATE_MENU_OPEN); |