[Bf-blender-cvs] [745311ed4c9] master: Fix T60506: Menu toggle clicks pass through to area

Campbell Barton noreply at git.blender.org
Tue Jan 15 01:43:27 CET 2019


Commit: 745311ed4c9ebdc410b60e558832ab22cb9106de
Author: Campbell Barton
Date:   Tue Jan 15 11:42:07 2019 +1100
Branches: master
https://developer.blender.org/rB745311ed4c9ebdc410b60e558832ab22cb9106de

Fix T60506: Menu toggle clicks pass through to area

===================================================================

M	source/blender/editors/interface/interface_handlers.c

===================================================================

diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index f649cfb04e2..e037692e3e8 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -4021,7 +4021,23 @@ static int ui_do_but_TOG(
 #endif
 
 	if (data->state == BUTTON_STATE_HIGHLIGHT) {
-		if (ELEM(event->type, LEFTMOUSE, PADENTER, RETKEY) && event->val == KM_PRESS) {
+		bool do_activate = false;
+		if (ELEM(event->type, PADENTER, RETKEY)) {
+			if (event->val == KM_PRESS) {
+				do_activate = true;
+			}
+		}
+		else if (event->type == LEFTMOUSE) {
+			if (ui_block_is_menu(but->block)) {
+				/* Behave like other menu items. */
+				do_activate = (event->val == KM_RELEASE);
+			}
+			else {
+				do_activate = (event->val == KM_PRESS);
+			}
+		}
+
+		if (do_activate) {
 #if 0		/* UNUSED */
 			data->togdual = event->ctrl;
 			data->togonly = !event->shift;



More information about the Bf-blender-cvs mailing list