[gtk+/wip/csd-for-review] Fix some issues when changing decorated
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/csd-for-review] Fix some issues when changing decorated
- Date: Mon, 11 Mar 2013 02:04:42 +0000 (UTC)
commit af1469587503670874637095db6b5d059cf72db3
Author: Matthias Clasen <mclasen redhat com>
Date: Sun Mar 10 21:52:41 2013 -0400
Fix some issues when changing decorated
We forgot to show the titlebar again when a window is turned
from decorated to undecorated and back again. Also, we were drawing
the titlebar background even when the window is undecorated.
gtk/gtkwindow.c | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 55403e8..5618503 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -3456,6 +3456,9 @@ gtk_window_set_decorated (GtkWindow *window,
0);
}
+ update_window_buttons (window);
+ gtk_widget_queue_resize (GTK_WIDGET (window));
+
g_object_notify (G_OBJECT (window), "decorated");
}
@@ -4946,7 +4949,8 @@ update_window_buttons (GtkWindow *window)
if (priv->title_icon)
{
icon = gtk_image_get_pixbuf (GTK_IMAGE (priv->title_icon));
- g_object_ref (icon);
+ if (icon)
+ g_object_ref (icon);
gtk_widget_destroy (priv->title_icon);
priv->title_icon = NULL;
}
@@ -5044,6 +5048,8 @@ update_window_buttons (GtkWindow *window)
g_strfreev (tokens);
}
g_free (layout_desc);
+
+ gtk_widget_show (priv->title_box);
}
else
{
@@ -6870,7 +6876,7 @@ gtk_window_enter_notify_event (GtkWidget *widget,
{
GtkWindowPrivate *priv = GTK_WINDOW (widget)->priv;
- if (priv->decorated && priv->client_decorated)
+ if (priv->client_decorated)
{
gint x, y;
GdkWindow *gdk_window;
@@ -6896,7 +6902,7 @@ gtk_window_motion_notify_event (GtkWidget *widget,
{
GtkWindowPrivate *priv = GTK_WINDOW (widget)->priv;
- if (priv->decorated && priv->client_decorated)
+ if (priv->client_decorated)
{
gint x, y;
GdkWindow *gdk_window;
@@ -7288,7 +7294,7 @@ update_cursor_at_position (GtkWidget *widget, gint x, gint y)
state = gdk_window_get_state (gtk_widget_get_window (widget));
- if ((state & GDK_WINDOW_STATE_MAXIMIZED) || !priv->resizable)
+ if ((state & GDK_WINDOW_STATE_MAXIMIZED) || !priv->resizable || !priv->decorated)
{
use_default = TRUE;
}
@@ -8889,7 +8895,7 @@ gtk_window_draw (GtkWidget *widget,
gtk_style_context_restore (context);
}
- if (priv->title_box && !priv->fullscreen)
+ if (priv->title_box && gtk_widget_get_visible (priv->title_box))
{
gtk_style_context_save (context);
gtk_style_context_add_class (context, "titlebar");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]