[mutter] events: Bypass wayland when scrolling with mouse-button modifier pressed



commit c255031b6d66b692964e6058363e4fd1a69a2857
Author: Florian Müllner <fmuellner gnome org>
Date:   Mon Jan 18 20:14:15 2021 +0100

    events: Bypass wayland when scrolling with mouse-button modifier pressed
    
    <super> is considered a system modifier, and applications cannot use it
    for keyboard shortcuts or as button modifier. It doesn't seem too much
    of a loss taking <super>+scroll-event away as well, so that it becomes
    available to gnome-shell/extensions.
    
    Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1674>

 src/core/events.c | 12 ++++++++++++
 1 file changed, 12 insertions(+)
---
diff --git a/src/core/events.c b/src/core/events.c
index c93e16fcea..f75e538295 100644
--- a/src/core/events.c
+++ b/src/core/events.c
@@ -269,6 +269,18 @@ meta_display_handle_event (MetaDisplay        *display,
         }
     }
 
+  if (event->type == CLUTTER_SCROLL && meta_prefs_get_mouse_button_mods () > 0)
+    {
+      ClutterModifierType grab_mods;
+
+      grab_mods = meta_display_get_window_grab_modifiers (display);
+      if ((clutter_event_get_state (event) & grab_mods) != 0)
+        {
+          bypass_wayland = TRUE;
+          goto out;
+        }
+    }
+
   if (event->type != CLUTTER_DEVICE_ADDED &&
       event->type != CLUTTER_DEVICE_REMOVED)
     {


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]