From 740bcf5fe0ff9dd25856e5d000faff80bcf44eea Mon Sep 17 00:00:00 2001 From: Cosimo Cecchi Date: Mon, 13 Apr 2015 15:31:10 -0700 Subject: [PATCH] window: fix initial shadow width for maximized/fullscreen windows To calculate the shadow width, we look at the value of priv->fullscreen and priv->maximized. Those fields will have the actual value only after GTK receives back a window state event though, so they will be wrong in _realize(). Look at priv->fullscreen_initially and priv->maximize_initially too, to avoid the size changing right after realize, which would make the window flicker if maximized at startup. https://bugzilla.gnome.org/show_bug.cgi?id=747808 --- gtk/gtkwindow.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c index 22b0e54c13..a4ca52e66e 100644 --- a/gtk/gtkwindow.c +++ b/gtk/gtkwindow.c @@ -6006,6 +6006,8 @@ gtk_window_map (GtkWidget *widget) else gdk_window_unmaximize (gdk_window); + priv->maximize_initially = FALSE; + if (priv->stick_initially) gdk_window_stick (gdk_window); else @@ -6021,6 +6023,8 @@ gtk_window_map (GtkWidget *widget) else gdk_window_unfullscreen (gdk_window); + priv->fullscreen_initially = FALSE; + gdk_window_set_keep_above (gdk_window, priv->above_initially); gdk_window_set_keep_below (gdk_window, priv->below_initially); @@ -6474,7 +6478,9 @@ get_shadow_width (GtkWidget *widget, return; if (priv->maximized || - priv->fullscreen) + priv->maximize_initially || + priv->fullscreen || + priv->fullscreen_initially) return; if (!gtk_widget_is_toplevel (widget))