forked from bartvdbraak/blender
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.
This commit is contained in:
parent
1a0c5eb83a
commit
50650e28ea
@ -148,6 +148,9 @@ typedef enum {
|
||||
GHOST_kButtonMaskRight,
|
||||
GHOST_kButtonMaskButton4,
|
||||
GHOST_kButtonMaskButton5,
|
||||
/* Trackballs and programmable buttons */
|
||||
GHOST_kButtonMaskButton6,
|
||||
GHOST_kButtonMaskButton7,
|
||||
GHOST_kButtonNumMasks
|
||||
} GHOST_TButtonMask;
|
||||
|
||||
|
@ -902,6 +902,10 @@ GHOST_SystemX11::processEvent(XEvent *xe)
|
||||
* you can re-order button mapping like this... (swaps 6,7 with 8,9)
|
||||
* xmodmap -e "pointer = 1 2 3 4 5 8 9 6 7"
|
||||
*/
|
||||
else if (xbe.button == 6)
|
||||
gbmask = GHOST_kButtonMaskButton6;
|
||||
else if (xbe.button == 7)
|
||||
gbmask = GHOST_kButtonMaskButton7;
|
||||
else if (xbe.button == 8)
|
||||
gbmask = GHOST_kButtonMaskButton4;
|
||||
else if (xbe.button == 9)
|
||||
|
@ -81,6 +81,8 @@ static EnumPropertyItem event_mouse_type_items[] = {
|
||||
{RIGHTMOUSE, "RIGHTMOUSE", 0, "Right", ""},
|
||||
{BUTTON4MOUSE, "BUTTON4MOUSE", 0, "Button4", ""},
|
||||
{BUTTON5MOUSE, "BUTTON5MOUSE", 0, "Button5", ""},
|
||||
{BUTTON6MOUSE, "BUTTON6MOUSE", 0, "Button6", ""},
|
||||
{BUTTON7MOUSE, "BUTTON7MOUSE", 0, "Button7", ""},
|
||||
{ACTIONMOUSE, "ACTIONMOUSE", 0, "Action", ""},
|
||||
{SELECTMOUSE, "SELECTMOUSE", 0, "Select", ""},
|
||||
{0, "", 0, NULL, NULL},
|
||||
@ -173,6 +175,8 @@ EnumPropertyItem event_type_items[] = {
|
||||
{RIGHTMOUSE, "RIGHTMOUSE", 0, "Right Mouse", ""},
|
||||
{BUTTON4MOUSE, "BUTTON4MOUSE", 0, "Button4 Mouse", ""},
|
||||
{BUTTON5MOUSE, "BUTTON5MOUSE", 0, "Button5 Mouse", ""},
|
||||
{BUTTON6MOUSE, "BUTTON6MOUSE", 0, "Button6 Mouse", ""},
|
||||
{BUTTON7MOUSE, "BUTTON7MOUSE", 0, "Button7 Mouse", ""},
|
||||
{ACTIONMOUSE, "ACTIONMOUSE", 0, "Action Mouse", ""},
|
||||
{SELECTMOUSE, "SELECTMOUSE", 0, "Select Mouse", ""},
|
||||
{0, "", 0, NULL, NULL},
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user