diff --git a/src/core/display.c b/src/core/display.c index a8ed432b5..37aab062b 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -830,22 +830,12 @@ meta_display_open (void) { MetaScreen *screen = tmp->data; - if (meta_is_wayland_compositor ()) - { - /* Instead of explicitly enumerating all windows during - * initialization, when we run as a wayland compositor we can rely on - * xwayland notifying us of all top level windows so we create - * MetaWindows when we get those notifications. - * - * We still want a guard window so we can avoid - * unmapping/withdrawing minimized windows for live - * thumbnails... - */ - if (screen->guard_window == None) - screen->guard_window = - meta_screen_create_guard_window (screen->display->xdisplay, screen); - } - else + meta_screen_create_guard_window (screen); + + /* We know that if mutter is running as a Wayland compositor, + * we start out with no windows. + */ + if (!meta_is_wayland_compositor ()) meta_screen_manage_all_windows (screen); tmp = tmp->next; diff --git a/src/core/screen.c b/src/core/screen.c index e1e967116..e8e8c56e0 100644 --- a/src/core/screen.c +++ b/src/core/screen.c @@ -445,8 +445,8 @@ reload_monitor_infos (MetaScreen *screen) * should effectively be forwarded to events on the background actor, * providing that the scene graph is set up correctly. */ -Window -meta_screen_create_guard_window (Display *xdisplay, MetaScreen *screen) +static Window +create_guard_window (Display *xdisplay, MetaScreen *screen) { XSetWindowAttributes attributes; Window guard_window; @@ -877,6 +877,13 @@ meta_screen_free (MetaScreen *screen, meta_display_ungrab (display); } +void +meta_screen_create_guard_window (MetaScreen *screen) +{ + if (screen->guard_window == None) + screen->guard_window = create_guard_window (screen->display->xdisplay, screen); +} + void meta_screen_manage_all_windows (MetaScreen *screen) { @@ -884,10 +891,6 @@ meta_screen_manage_all_windows (MetaScreen *screen) MetaStackWindow *children; int n_children, i; - if (screen->guard_window == None) - screen->guard_window = - meta_screen_create_guard_window (screen->display->xdisplay, screen); - meta_stack_freeze (screen->stack); meta_stack_tracker_get_stack (screen->stack_tracker, &_children, &n_children);