wayland: do not update shadows for child windows
authorOlivier Fourdan <ofourdan@redhat.com>
Thu, 7 Apr 2016 13:56:46 +0000 (15:56 +0200)
committerOlivier Fourdan <ofourdan@redhat.com>
Fri, 8 Apr 2016 14:59:36 +0000 (16:59 +0200)
glade-previewer places a gtkwindow inside another toplevel gtkwindow,
updating the shadow width for the client induces a busy loop where the
parent will grow continuously until it crashes gnome-shell/mutter.

To avoid the loop, do not update the shadow width if not dealing with a
toplevel window.

Bugzilla: https://bugzilla.gnome.org/show_bug.cgi?id=761651

gtk/gtkwindow.c

index f1d736c88576b72ad1d23f4cfde89ca47151c8eb..72053cf8930fd64a0022786010be5a27b34453a5 100644 (file)
@@ -7104,13 +7104,15 @@ update_realized_window_properties (GtkWindow     *window,
 {
   GtkWindowPrivate *priv = window->priv;
 
+  if (!_gtk_widget_is_toplevel (GTK_WIDGET (window)))
+    return;
+
   if (priv->client_decorated && priv->use_client_shadow)
     update_shadow_width (window, window_border);
 
   update_opaque_region (window, window_border, child_allocation);
 
-  if (_gtk_widget_is_toplevel (GTK_WIDGET (window)))
-    update_border_windows (window);
+  update_border_windows (window);
 }
 
 static void