WM: add macros to check mouse button/gesture/wheel
authorCampbell Barton <ideasman42@gmail.com>
Sun, 10 Jun 2018 10:08:09 +0000 (12:08 +0200)
committerCampbell Barton <ideasman42@gmail.com>
Sun, 10 Jun 2018 10:08:09 +0000 (12:08 +0200)
Use to check click/drag,
fixes issue with mouse wheel triggering pie menu.

source/blender/windowmanager/intern/wm_event_system.c
source/blender/windowmanager/wm_event_types.h

index d517fb2..951bfb1 100644 (file)
@@ -2274,7 +2274,7 @@ static int wm_handlers_do(bContext *C, wmEvent *event, ListBase *handlers)
                        }
                }
        }
-       else if (ISMOUSE(event->type) || ISKEYBOARD(event->type)) {
+       else if (ISMOUSE_BUTTON(event->type) || ISKEYBOARD(event->type)) {
                /* All events that don't set wmEvent.prevtype must be ignored. */
 
                /* test for CLICK events */
index 460ff1a..2e9722b 100644 (file)
@@ -366,6 +366,13 @@ enum {
 /* test whether the event is a mouse button */
 #define ISMOUSE(event_type)  ((event_type) >= LEFTMOUSE && (event_type) <= BUTTON7MOUSE)
 
+#define ISMOUSE_WHEEL(event_type)  ((event_type) >= WHEELUPMOUSE && (event_type) <= WHEELOUTMOUSE)
+#define ISMOUSE_GESTURE(event_type)  ((event_type) >= MOUSEPAN && (event_type) <= MOUSEROTATE)
+#define ISMOUSE_BUTTON(event_type) \
+       (ELEM(event_type, \
+             LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE, ACTIONMOUSE, SELECTMOUSE, \
+             BUTTON4MOUSE, BUTTON5MOUSE, BUTTON6MOUSE, BUTTON7MOUSE))
+
 /* test whether the event is tweak event */
 #define ISTWEAK(event_type)  ((event_type) >= EVT_TWEAK_L && (event_type) <= EVT_GESTURE)