[Bf-blender-cvs] [5165d629315] master: WM: correct recent change to click/drag detection

Campbell Barton noreply at git.blender.org
Fri Jun 8 22:19:13 CEST 2018


Commit: 5165d6293153fd622e11c2f9f991a8693b765ccb
Author: Campbell Barton
Date:   Fri Jun 8 22:17:21 2018 +0200
Branches: master
https://developer.blender.org/rB5165d6293153fd622e11c2f9f991a8693b765ccb

WM: correct recent change to click/drag detection

fb1915d87090a - caused click/drag events not to be detected.

Now check a key is a mouse or keyboard event.

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

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 8693fd401a8..d517fb280d1 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -2274,7 +2274,9 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers)
 			}
 		}
 	}
-	else if (!ELEM(event->type, EVENT_NONE) && !ISTIMER(event->type)) {
+	else if (ISMOUSE(event->type) || ISKEYBOARD(event->type)) {
+		/* All events that don't set wmEvent.prevtype must be ignored. */
+
 		/* test for CLICK events */
 		if (wm_action_not_handled(action)) {
 			wmWindow *win = CTX_wm_window(C);
@@ -2284,11 +2286,8 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers)
 
 			if (win != NULL) {
 				if (event->val == KM_PRESS) {
-					/* Ensure the types match to prevent mouse wheel from triggering drag/clicks. */
-					if (event->type == win->eventstate->prevtype) {
-						win->eventstate->check_click = true;
-						win->eventstate->check_drag = true;
-					}
+					win->eventstate->check_click = true;
+					win->eventstate->check_drag = true;
 				}
 				else if (event->val == KM_RELEASE) {
 					win->eventstate->check_drag = false;



More information about the Bf-blender-cvs mailing list