88public class Gala.ShellClientsManager : Object , GestureTarget {
99 private static ShellClientsManager instance;
1010
11- public static void init (WindowManager wm ) {
11+ public static void init (WindowManagerGala wm ) {
1212 if (instance != null ) {
1313 return ;
1414 }
@@ -20,7 +20,7 @@ public class Gala.ShellClientsManager : Object, GestureTarget {
2020 return instance;
2121 }
2222
23- public WindowManager wm { get ; construct; }
23+ public WindowManagerGala wm { get ; construct; }
2424
2525 private NotificationsClient notifications_client;
2626 private ManagedClient [] protocol_clients = {};
@@ -31,7 +31,7 @@ public class Gala.ShellClientsManager : Object, GestureTarget {
3131 private GLib . HashTable<Meta . Window , ExtendedBehaviorWindow > positioned_windows = new GLib .HashTable<Meta . Window , ExtendedBehaviorWindow > (null , null );
3232 private GLib . HashTable<Meta . Window , MonitorLabelWindow > monitor_label_windows = new GLib .HashTable<Meta . Window , MonitorLabelWindow > (null , null );
3333
34- private ShellClientsManager (WindowManager wm ) {
34+ private ShellClientsManager (WindowManagerGala wm ) {
3535 Object (wm: wm);
3636 }
3737
@@ -178,6 +178,8 @@ public class Gala.ShellClientsManager : Object, GestureTarget {
178178
179179 panel_windows[window] = new PanelWindow (wm, window, anchor);
180180
181+ wm. override_window_group (window, DESKTOP_SHELL );
182+
181183 InternalUtils . wait_for_window_actor_visible (window, on_panel_ready);
182184
183185 // connect_after so we make sure the PanelWindow can destroy its barriers and struts
@@ -243,6 +245,8 @@ public class Gala.ShellClientsManager : Object, GestureTarget {
243245
244246 public void make_modal (Meta .Window window , bool dim ) requires (window in positioned_windows ) {
245247 positioned_windows[window]. make_modal (dim);
248+
249+ wm. override_window_group (window, MODAL );
246250 }
247251
248252 public void make_monitor_label (Meta .Window window , int monitor_index ) requires (!is_itself_shell_window (window )) {
@@ -253,6 +257,8 @@ public class Gala.ShellClientsManager : Object, GestureTarget {
253257
254258 monitor_label_windows[window] = new MonitorLabelWindow (window, monitor_index);
255259
260+ wm. override_window_group (window, DESKTOP_SHELL );
261+
256262 // connect_after so we make sure that any queued move is unqueued
257263 window. unmanaging. connect_after ((_window) = > monitor_label_windows. remove (_window));
258264 }
@@ -297,25 +303,10 @@ public class Gala.ShellClientsManager : Object, GestureTarget {
297303 return positioned;
298304 }
299305
300- private bool is_itself_system_modal (Meta .Window window ) {
301- return (window in positioned_windows) && positioned_windows[window]. modal;
302- }
303-
304- public bool is_system_modal_window (Meta .Window window ) {
305- var modal = is_itself_system_modal (window);
306- window. foreach_ancestor ((ancestor) = > {
307- if (is_itself_system_modal (ancestor)) {
308- modal = true ;
309- }
310-
311- return ! modal;
312- });
313-
314- return modal;
315- }
316-
317- public bool is_system_modal_dimmed (Meta .Window window ) {
318- return is_itself_system_modal (window) && positioned_windows[window]. dim;
306+ public bool is_system_modal_dimmed (Meta .Window window ) requires (
307+ window in positioned_windows && positioned_windows [window ].modal
308+ ) {
309+ return positioned_windows[window]. dim;
319310 }
320311
321312 // X11 only
0 commit comments