gtkwindow: Always report _GTK_FRAME_EXTENTS for the normal, unmaximized, untiled state

This commit is contained in:
Jasper St. Pierre
2014-01-09 15:59:59 -05:00
parent 1d9b061c90
commit 2c3b5781e1

View File

@@ -6140,10 +6140,9 @@ update_window_style_classes (GtkWindow *window)
}
static void
get_shadow_width (GtkWidget *widget,
GtkBorder *shadow_width)
get_shadow_width_internal (GtkWidget *widget,
GtkBorder *shadow_width)
{
GtkWindowPrivate *priv = GTK_WINDOW (widget)->priv;
GtkBorder border = { 0 };
GtkBorder d = { 0 };
GtkBorder margin;
@@ -6154,14 +6153,6 @@ get_shadow_width (GtkWidget *widget,
*shadow_width = border;
if (!priv->client_decorated)
return;
if (priv->maximized ||
priv->fullscreen ||
priv->tiled)
return;
state = gtk_widget_get_state_flags (widget);
context = gtk_widget_get_style_context (widget);
@@ -6200,6 +6191,26 @@ get_shadow_width (GtkWidget *widget,
gtk_style_context_restore (context);
}
static void
get_shadow_width (GtkWidget *widget,
GtkBorder *shadow_width)
{
GtkWindowPrivate *priv = GTK_WINDOW (widget)->priv;
GtkBorder nothing = { 0 };
*shadow_width = nothing;
if (!priv->client_decorated)
return;
if (priv->maximized ||
priv->fullscreen ||
priv->tiled)
return;
get_shadow_width_internal (widget, shadow_width);
}
/* We're placing 8 input-only windows around
* the window content as resize handles, as
* follows:
@@ -6438,19 +6449,27 @@ update_border_windows (GtkWindow *window)
}
static void
update_shadow_width (GtkWindow *window,
GtkBorder *border)
update_shadow_width (GtkWindow *window)
{
GtkWidget *widget = GTK_WIDGET (window);
GtkWindowPrivate *priv = window->priv;
GdkWindow *gdk_window;
GtkBorder border;
gdk_window = gtk_widget_get_window (GTK_WIDGET (window));
if (!priv->client_decorated)
return;
if (gdk_window)
gdk_window_set_shadow_width (gdk_window,
border->left,
border->right,
border->top,
border->bottom);
gdk_window = gtk_widget_get_window (widget);
if (gdk_window == NULL)
return;
get_shadow_width_internal (widget, &border);
gdk_window_set_shadow_width (gdk_window,
border.left,
border.right,
border.top,
border.bottom);
}
static void
@@ -6584,9 +6603,6 @@ _gtk_window_set_allocation (GtkWindow *window,
priv->title_height = 0;
if (priv->client_decorated)
update_shadow_width (window, &window_border);
update_opaque_region (window, &window_border, &child_allocation);
if (priv->title_box != NULL &&
@@ -6821,6 +6837,7 @@ gtk_window_style_updated (GtkWidget *widget)
gdk_window_set_background_rgba (gtk_widget_get_window (widget),
&transparent);
gtk_widget_queue_resize (widget);
update_shadow_width (window);
}
}