wayland: Fix button mask for button 2 and 3
authorArjan Molenaar <gaphor@gmail.com>
Thu, 2 Feb 2023 20:48:58 +0000 (21:48 +0100)
committerArjan Molenaar <gaphor@gmail.com>
Thu, 2 Feb 2023 20:48:58 +0000 (21:48 +0100)
Wayland and GTK order mouse button 2 and 3 differently.

Fixes #5561.

gdk/wayland/gdkdevice-wayland.c

index d4e12f0fae0c4662754ea4534a66cd90d96e660d..90ecad458a946980a197cc140146ea2f41402ef6 100644 (file)
@@ -1720,7 +1720,18 @@ pointer_handle_button (void              *data,
 
   gdk_wayland_seat_set_frame_event (seat, event);
 
-  modifier = (GDK_BUTTON1_MASK << (button - BUTTON_BASE - 1)) & ALL_BUTTONS_MASK;
+  switch (button)
+    {
+    case BTN_RIGHT:
+      modifier = GDK_BUTTON3_MASK;
+      break;
+    case BTN_MIDDLE:
+      modifier = GDK_BUTTON2_MASK;
+      break;
+    default:
+      modifier = (GDK_BUTTON1_MASK << (button - BUTTON_BASE - 1)) & ALL_BUTTONS_MASK;
+      break;
+    }
 
   if (state)
     seat->pointer_info.button_modifiers |= modifier;