Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2019-03-27 16:57:46 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-03-27 16:59:50 +0300
commit5a1a633d0435531c2dabf3442e2a3ca72b4a6da3 (patch)
tree5960ee200a4565b7194b8e3a5c0b727737c453b0 /source/blender
parent57de9581e8fa359d11581e6acdfad764d14bd93c (diff)
UI: minor change to active-default logic
Don't attempt to activate default button if it's already active. Also expand on the flags comment.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/editors/include/UI_interface.h4
-rw-r--r--source/blender/editors/interface/interface_handlers.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index ec88278ec88..9f189b63ad5 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -193,7 +193,9 @@ enum {
UI_BUT_IMMEDIATE = 1 << 20,
UI_BUT_NO_UTF8 = 1 << 21,
- /** For popups, pressing return activates this button, overriding the highlighed button. */
+ /** For popups, pressing return activates this button, overriding the highlighted button.
+ * For non-popups this is just used as a display hint for the user to let them
+ * know the action which is activated when pressing return (file selector for eg). */
UI_BUT_ACTIVE_DEFAULT = 1 << 23,
/** This but is "inside" a list item (currently used to change theme colors). */
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index c388ed40851..800b15bff61 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -9242,7 +9242,7 @@ static int ui_handle_menu_event(
}
else if (ELEM(event->type, RETKEY, PADENTER) && event->val == KM_PRESS) {
uiBut *but_active = ui_region_find_first_but_test_flag(ar, UI_BUT_ACTIVE_DEFAULT, UI_HIDDEN);
- if (but_active != NULL) {
+ if ((but_active != NULL) && (but_active->active == NULL)) {
ui_handle_button_activate(C, ar, but_active, BUTTON_ACTIVATE);
/* Get again below just incase it's disabled for eg. */
}