[Bf-blender-cvs] [b711be9b99d] blender2.8: Keymaps: don't do CLICK event when PRESS was already handled.

Brecht Van Lommel noreply at git.blender.org
Mon Nov 26 16:23:04 CET 2018


Commit: b711be9b99d90a40bdf787a756cb982eab5c1e61
Author: Brecht Van Lommel
Date:   Mon Nov 26 14:50:09 2018 +0100
Branches: blender2.8
https://developer.blender.org/rBb711be9b99d90a40bdf787a756cb982eab5c1e61

Keymaps: don't do CLICK event when PRESS was already handled.

This fixes conflicts where the tool and editor keymap use different event
types. Tools need to be able to mouse buttons on PRESS without triggering
CLICK events in the editor keymap.

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

M	source/blender/windowmanager/intern/wm_event_system.c

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

diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c
index a9a248f027b..576f5470069 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -2635,15 +2635,15 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers)
 					event->x = x;
 					event->y = y;
 
-					win->eventstate->check_click = 0;
-					win->eventstate->check_drag = 0;
+					win->eventstate->check_click = false;
+					win->eventstate->check_drag = false;
 				}
 			}
 		}
 		else {
 			wmWindow *win = CTX_wm_window(C);
 			if (win) {
-				win->eventstate->check_drag = 0;
+				win->eventstate->check_drag = false;
 			}
 		}
 	}
@@ -3115,6 +3115,12 @@ void wm_event_do_handlers(bContext *C)
 
 			}
 
+			/* If press was handled, we don't want to do click. This way
+			 * press in tool keymap can override click in editor keymap.*/
+			if (event->val == KM_PRESS && !wm_action_not_handled(action)) {
+				win->eventstate->check_click = false;
+			}
+
 			/* update previous mouse position for following events to use */
 			win->eventstate->prevx = event->x;
 			win->eventstate->prevy = event->y;



More information about the Bf-blender-cvs mailing list