From 50650e28ea5641b200727fcbe14de83fa10e2c49 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 12 Jan 2014 00:38:44 +1100 Subject: Events: support for buttons 6 & 7 (some trackballs have these) X11 only Patch by Marcus von Appen Note: this patch makes ISMOUSE accept INBETWEEN_MOUSEMOVE as a mouse event where before it didnt. --- source/blender/windowmanager/intern/wm_event_system.c | 4 ++++ source/blender/windowmanager/wm_event_types.h | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'source/blender/windowmanager') diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index ef9b7c4f1b0..e4dfae284fe 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -3011,6 +3011,10 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U event.type = BUTTON4MOUSE; else if (bd->button == GHOST_kButtonMaskButton5) event.type = BUTTON5MOUSE; + else if (bd->button == GHOST_kButtonMaskButton6) + event.type = BUTTON6MOUSE; + else if (bd->button == GHOST_kButtonMaskButton7) + event.type = BUTTON7MOUSE; else event.type = MIDDLEMOUSE; diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h index df3096eed07..08cbd535262 100644 --- a/source/blender/windowmanager/wm_event_types.h +++ b/source/blender/windowmanager/wm_event_types.h @@ -65,6 +65,9 @@ /* Extra mouse buttons */ #define BUTTON4MOUSE 7 #define BUTTON5MOUSE 8 + /* More mouse buttons - can't use 9 and 10 here (wheel) */ +#define BUTTON6MOUSE 18 +#define BUTTON7MOUSE 19 /* Extra trackpad gestures */ #define MOUSEPAN 14 #define MOUSEZOOM 15 @@ -297,7 +300,7 @@ enum { #define ISKEYMODIFIER(event_type) ((event_type >= LEFTCTRLKEY && event_type <= LEFTSHIFTKEY) || event_type == OSKEY) /* test whether the event is a mouse button */ -#define ISMOUSE(event_type) (event_type >= LEFTMOUSE && event_type <= MOUSEROTATE) +#define ISMOUSE(event_type) (event_type >= LEFTMOUSE && event_type <= BUTTON7MOUSE) /* test whether the event is tweak event */ #define ISTWEAK(event_type) (event_type >= EVT_TWEAK_L && event_type <= EVT_GESTURE) -- cgit v1.2.3