From 02426c50cbf41c1e03d7b0073f9f3ec2228a4ada Mon Sep 17 00:00:00 2001 From: Daniel Drake Date: Tue, 7 Jan 2014 10:12:31 -0600 Subject: [PATCH] window: don't grab server during calc_showing This grab was added in commit caf43a123f40d3a68599ac5453a79759b828e8f0 https://bugzilla.gnome.org/show_bug.cgi?id=381127 to minimize window flickering when switching workspaces. While this grab is held, some signals are emitted to the shell, which can lead to deadlocks (reproduced under Mali binary OpenGLESv2 drivers). Now that we are a compositing window manager, we do not have to worry about flickers, this grab should no longer be necessary. https://bugzilla.gnome.org/show_bug.cgi?id=721709 --- src/core/window.c | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/core/window.c b/src/core/window.c index a2f04aa27..57a8b2a70 100644 --- a/src/core/window.c +++ b/src/core/window.c @@ -2254,7 +2254,6 @@ idle_calc_showing (gpointer data) GSList *should_hide; GSList *unplaced; GSList *displays; - MetaWindow *first_window; guint queue_index = GPOINTER_TO_INT (data); g_return_val_if_fail (queue_pending[queue_index] != NULL, FALSE); @@ -2307,10 +2306,6 @@ idle_calc_showing (gpointer data) should_show = g_slist_sort (should_show, stackcmp); should_show = g_slist_reverse (should_show); - first_window = copy->data; - - meta_display_grab (first_window->display); - tmp = unplaced; while (tmp != NULL) { @@ -2383,8 +2378,6 @@ idle_calc_showing (gpointer data) } } - meta_display_ungrab (first_window->display); - g_slist_free (copy); g_slist_free (unplaced);