From 29a31fa691d0369ba51840fe859f8d2a2f20ec9e Mon Sep 17 00:00:00 2001 From: lenemter Date: Thu, 2 Apr 2026 22:00:30 +0200 Subject: [PATCH] WindowSwitcher: correctly handle multiple keybind modifiers --- src/Widgets/WindowSwitcher/WindowSwitcher.vala | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/src/Widgets/WindowSwitcher/WindowSwitcher.vala b/src/Widgets/WindowSwitcher/WindowSwitcher.vala index 813823a30..6ef50d6f9 100644 --- a/src/Widgets/WindowSwitcher/WindowSwitcher.vala +++ b/src/Widgets/WindowSwitcher/WindowSwitcher.vala @@ -13,7 +13,7 @@ public class Gala.WindowSwitcher : AbstractSwitcher, GestureTarget, RootTarget { public bool opened { get; private set; default = false; } private GestureController gesture_controller; - private int modifier_mask; + private Clutter.ModifierType modifier_mask; private Gala.ModalProxy? modal_proxy; private int previous_icon_index = 0; @@ -109,21 +109,10 @@ public class Gala.WindowSwitcher : AbstractSwitcher, GestureTarget, RootTarget { return; } - var workspace = display.get_workspace_manager ().get_active_workspace (); - - // copied from gnome-shell, finds the primary modifier in the mask - var mask = binding.get_mask (); - if (mask == 0) { - modifier_mask = 0; - } else { - modifier_mask = 1; - while (mask > 1) { - mask >>= 1; - modifier_mask <<= 1; - } - } + modifier_mask = binding.get_modifiers (); if (!opened) { + unowned var workspace = display.get_workspace_manager ().get_active_workspace (); bool windows_exist; if (binding.get_name ().has_prefix ("switch-group")) { windows_exist = collect_current_windows (display, workspace);