[gtk+] Some resize grip cleanups
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Some resize grip cleanups
- Date: Wed, 13 Oct 2010 13:53:32 +0000 (UTC)
commit f8b8c95f45156f931b134ab92546ce7fc54434ab
Author: Matthias Clasen <mclasen redhat com>
Date: Wed Oct 13 09:51:54 2010 -0400
Some resize grip cleanups
Safe space in the private struct, always set the cursor when we
update visibility, since the cursor depends on resizability conditions
too. And don't set the shape needlessly.
gtk/gtkwindow.c | 33 +++++++++++++++++++--------------
1 files changed, 19 insertions(+), 14 deletions(-)
---
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index cae6a80..2a70206 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -115,7 +115,6 @@ struct _GtkWindowPrivate
gdouble opacity;
- gboolean has_resize_grip;
GdkWindow *grip_window;
gchar *startup_id;
@@ -130,11 +129,6 @@ struct _GtkWindowPrivate
guint frame_top;
guint keys_changed_handler;
- /* Don't use this value, it's only used for determining when
- * to fire notify events on the "resize-grip-visible" property.
- */
- gboolean resize_grip_visible;
-
guint16 configure_request_count;
/* The following flags are initially TRUE (before a window is mapped).
@@ -176,9 +170,17 @@ struct _GtkWindowPrivate
guint stick_initially : 1;
guint transient_parent_group : 1;
guint type : 4; /* GtkWindowType */
- guint type_hint : 3; /* GdkWindowTypeHint if the hint is one of the original eight. If not, then
- * it contains GDK_WINDOW_TYPE_HINT_NORMAL */
+ guint type_hint : 3; /* GdkWindowTypeHint if the hint is
+ * one of the original eight. If not,
+ * then it contains
+ * GDK_WINDOW_TYPE_HINT_NORMAL
+ */
guint urgent : 1;
+ guint has_resize_grip : 1;
+ guint resize_grip_visible : 1; /* don't use, just for "resize-
+ * grip-visible" notification
+ */
+
};
enum {
@@ -5192,6 +5194,7 @@ gtk_window_size_allocate (GtkWidget *widget,
gdk_window_resize (priv->frame,
allocation->width + priv->frame_left + priv->frame_right,
allocation->height + priv->frame_top + priv->frame_bottom);
+ update_grip_visibility (window);
set_grip_position (window);
}
}
@@ -5347,7 +5350,6 @@ gtk_window_state_changed (GtkWidget *widget,
{
GtkWindow *window = GTK_WINDOW (widget);
- set_grip_cursor (window);
update_grip_visibility (window);
}
@@ -5388,7 +5390,6 @@ resize_grip_create_window (GtkWindow *window)
gdk_window_raise (priv->grip_window);
- set_grip_cursor (window);
set_grip_shape (window);
update_grip_visibility (window);
}
@@ -5455,9 +5456,14 @@ update_grip_visibility (GtkWindow *window)
if (priv->grip_window != NULL)
{
if (val)
- gdk_window_show (priv->grip_window);
+ {
+ gdk_window_show (priv->grip_window);
+ set_grip_cursor (window);
+ }
else
- gdk_window_hide (priv->grip_window);
+ {
+ gdk_window_hide (priv->grip_window);
+ }
}
if (priv->resize_grip_visible != val)
@@ -6869,8 +6875,7 @@ gtk_window_move_resize (GtkWindow *window)
gtk_widget_size_allocate (widget, &allocation);
set_grip_position (window);
- set_grip_cursor (window);
- set_grip_shape (window);
+ update_grip_visibility (window);
gdk_window_process_updates (gdk_window, TRUE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]