From 937a9853cde63cb826ef9d7997ebec92531b5240 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Fri, 29 Jun 2018 12:44:17 +0200 Subject: [PATCH] Unmanage compositor and windows when closing display Instead of unmanaging when closing the display, which is closed when closing the screen, unmanage them directly from meta_display_close(). https://bugzilla.gnome.org/show_bug.cgi?id=759538 --- src/core/display-private.h | 5 ++--- src/core/display.c | 9 ++++++--- src/core/screen.c | 4 ---- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/src/core/display-private.h b/src/core/display-private.h index 9a52c4af9..88c895575 100644 --- a/src/core/display-private.h +++ b/src/core/display-private.h @@ -292,9 +292,8 @@ gboolean meta_display_open (void); void meta_display_close (MetaDisplay *display, guint32 timestamp); -void meta_display_unmanage_windows_for_screen (MetaDisplay *display, - MetaScreen *screen, - guint32 timestamp); +void meta_display_unmanage_windows (MetaDisplay *display, + guint32 timestamp); /* Utility function to compare the stacking of two windows */ int meta_display_stack_cmp (const void *a, diff --git a/src/core/display.c b/src/core/display.c index b8ecafbf7..64442b659 100644 --- a/src/core/display.c +++ b/src/core/display.c @@ -981,6 +981,10 @@ meta_display_close (MetaDisplay *display, display->closing += 1; + meta_compositor_unmanage (display->compositor); + + meta_display_unmanage_windows (display, timestamp); + meta_prefs_remove_listener (prefs_changed_callback, display); meta_display_remove_autoraise_callback (display); @@ -2632,9 +2636,8 @@ meta_display_unmanage_screen (MetaDisplay *display, } void -meta_display_unmanage_windows_for_screen (MetaDisplay *display, - MetaScreen *screen, - guint32 timestamp) +meta_display_unmanage_windows (MetaDisplay *display, + guint32 timestamp) { GSList *tmp; GSList *winlist; diff --git a/src/core/screen.c b/src/core/screen.c index e32dfe7cc..26bae29fe 100644 --- a/src/core/screen.c +++ b/src/core/screen.c @@ -797,10 +797,6 @@ meta_screen_free (MetaScreen *screen, screen->closing += 1; - meta_compositor_unmanage (screen->display->compositor); - - meta_display_unmanage_windows_for_screen (display, screen, timestamp); - meta_prefs_remove_listener (prefs_changed_callback, screen); meta_screen_ungrab_keys (screen);