diff --git a/input/drivers/x11_input.c b/input/drivers/x11_input.c index 743ed74f7ae1..b3e2150cf824 100644 --- a/input/drivers/x11_input.c +++ b/input/drivers/x11_input.c @@ -45,6 +45,8 @@ typedef struct x11_input bool mouse_l; bool mouse_r; bool mouse_m; + bool mouse_b4; + bool mouse_b5; } x11_input_t; /* Public global variable */ @@ -86,12 +88,10 @@ static bool x_mouse_button_pressed( return x11->mouse_r; case RETRO_DEVICE_ID_MOUSE_MIDDLE: return x11->mouse_m; -#if 0 case RETRO_DEVICE_ID_MOUSE_BUTTON_4: return x11->mouse_b4; case RETRO_DEVICE_ID_MOUSE_BUTTON_5: return x11->mouse_b5; -#endif case RETRO_DEVICE_ID_MOUSE_WHEELUP: case RETRO_DEVICE_ID_MOUSE_WHEELDOWN: case RETRO_DEVICE_ID_MOUSE_HORIZ_WHEELUP: @@ -269,6 +269,11 @@ static int16_t x_input_state( return x_mouse_state_wheel(id); case RETRO_DEVICE_ID_MOUSE_MIDDLE: return x11->mouse_m; + case RETRO_DEVICE_ID_MOUSE_BUTTON_4: + return x11->mouse_b4; + case RETRO_DEVICE_ID_MOUSE_BUTTON_5: + return x11->mouse_b5; + } break; case RETRO_DEVICE_POINTER: @@ -458,6 +463,8 @@ static void x_input_poll(void *data) x11->mouse_l = 0; x11->mouse_m = 0; x11->mouse_r = 0; + x11->mouse_b4 = 0; + x11->mouse_b5 = 0; return; } @@ -473,6 +480,8 @@ static void x_input_poll(void *data) x11->mouse_l = 0; x11->mouse_m = 0; x11->mouse_r = 0; + x11->mouse_b4 = 0; + x11->mouse_b5 = 0; return; } @@ -489,6 +498,8 @@ static void x_input_poll(void *data) x11->mouse_l = mask & Button1Mask; x11->mouse_m = mask & Button2Mask; x11->mouse_r = mask & Button3Mask; + x11->mouse_b4 = mask & Button4Mask; + x11->mouse_b5 = mask & Button5Mask; /* > Mouse pointer */ if (!x11->mouse_grabbed)