Blob Blame History Raw
From d3f75f31c8042b7db68811a591e2b80c5d5096ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Tue, 25 Jun 2019 20:22:54 +0200
Subject: [PATCH 18/28] screen: Unset the active workspace and remove
 workspaces on free

Related to https://gitlab.gnome.org/GNOME/mutter/issues/652
---
 src/core/screen.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/core/screen.c b/src/core/screen.c
index 2e59754d1..11f3badd4 100644
--- a/src/core/screen.c
+++ b/src/core/screen.c
@@ -836,6 +836,7 @@ meta_screen_free (MetaScreen *screen,
                   guint32     timestamp)
 {
   MetaDisplay *display;
+  GList *l;
 
   display = screen->display;
 
@@ -877,6 +878,16 @@ meta_screen_free (MetaScreen *screen,
 
   g_free (screen->screen_name);
 
+  screen->active_workspace = NULL;
+
+  for (l = screen->workspaces; l;)
+    {
+      MetaWorkspace *workspace = l->data;
+      l = l->next;
+
+      meta_workspace_remove (workspace);
+    }
+
   g_object_unref (screen);
 }
 
-- 
2.21.0