[gtk+] gtkwindow: Update shadow size on state change



commit 4cb1b9645e84054c059f174240e8e288c4befe05
Author: Olivier Fourdan <ofourdan redhat com>
Date:   Mon Sep 19 16:11:54 2016 +0200

    gtkwindow: Update shadow size on state change
    
    Otherwise, with CSD, we could have a discrepancy where gtk uses the
    right values for the shadows whereas the gdk backend still uses the old
    values, leading in some cases to invalid or negative min size being
    computed (which, in Wayland, leads a protocol error).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=771561

 gtk/gtkwindow.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index fc1e050..9808475 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -7529,6 +7529,19 @@ update_window_style_classes (GtkWindow *window)
 }
 
 static void
+update_window_borders (GtkWindow *window)
+{
+  GtkWindowPrivate *priv = window->priv;
+  GtkBorder window_border = { 0 };
+
+  if (priv->client_decorated && priv->use_client_shadow)
+    {
+      get_shadow_width (window, &window_border);
+      update_shadow_width (window, &window_border);
+    }
+}
+
+static void
 popover_size_allocate (GtkWidget        *widget,
                        GtkWindowPopover *popover,
                        GtkWindow        *window)
@@ -7798,6 +7811,7 @@ gtk_window_state_event (GtkWidget           *widget,
     {
       update_window_style_classes (window);
       update_window_buttons (window);
+      update_window_borders (window);
       gtk_widget_queue_resize (widget);
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]