summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimo@endlessm.com>2015-04-13 15:31:10 -0700
committerMatthias Clasen <mclasen@redhat.com>2015-04-16 22:12:56 -0400
commit740bcf5fe0ff9dd25856e5d000faff80bcf44eea (patch)
treeeafdc751fec1450db365f1628c5bf69b34318c1a
parent5dbccc868e2c066a2b260f22cac2de8ac705f2ba (diff)
downloadgtk+-740bcf5fe0ff9dd25856e5d000faff80bcf44eea.tar.gz
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
-rw-r--r--gtk/gtkwindow.c8
1 files changed, 7 insertions, 1 deletions
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))