summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2004-11-11 19:57:41 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2004-11-11 19:57:41 +0000
commit75eb3f9d2f71554657bcf9dfd22d57b9dbdb64f2 (patch)
tree352e911439a5a16070e0bcb4717c99317d3ff266
parent41628edebb199222c1d3af95af04ec6f1a017b7a (diff)
downloadgdk-pixbuf-75eb3f9d2f71554657bcf9dfd22d57b9dbdb64f2.tar.gz
Remove two more places where we were unconditionally setting "visible",
2004-11-11 Matthias Clasen <mclasen@redhat.com> * gtk/gtkuimanager.c (update_node): Remove two more places where we were unconditionally setting "visible", causing unnecessary notifications. * gtk/gtkclipboard.c (gtk_clipboard_get_for_display): (gtk_clipboard_get): Clarify the docs. (#156638, Torsten Schoenfeld) (gtk_clipboard_finalize): Warn if the clipboard is still in its displays clipboard list.
-rw-r--r--ChangeLog12
-rw-r--r--ChangeLog.pre-2-1012
-rw-r--r--ChangeLog.pre-2-612
-rw-r--r--ChangeLog.pre-2-812
-rw-r--r--gtk/gtkclipboard.c22
-rw-r--r--gtk/gtkuimanager.c18
6 files changed, 72 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index bab240f7d..db565e155 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,15 @@
2004-11-11 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkuimanager.c (update_node): Remove two more places
+ where we were unconditionally setting "visible", causing
+ unnecessary notifications.
+
+ * gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
+ (gtk_clipboard_get): Clarify the docs. (#156638, Torsten
+ Schoenfeld)
+ (gtk_clipboard_finalize): Warn if the clipboard is still in
+ its displays clipboard list.
+
Considerably speed up GtkUIManager, by changing the semantics
of the dirty flag. It is now propagated up the tree, and
update_node() doesn't descend into clean subtrees. (#143668,
@@ -44,7 +54,7 @@ Thu Nov 11 11:34:32 2004 Jonathan Blandford <jrb@redhat.com>
by leaving room for the resize grip. (#157778, Christian Persch)
* gdk/linux-fb/*: Fix many sparse warnings. (#157253,
- Kjartan Maraas.
+ Kjartan Maraas).
* NEWS: Updates
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index bab240f7d..db565e155 100644
--- a/ChangeLog.pre-2-10
+++ b/ChangeLog.pre-2-10
@@ -1,5 +1,15 @@
2004-11-11 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkuimanager.c (update_node): Remove two more places
+ where we were unconditionally setting "visible", causing
+ unnecessary notifications.
+
+ * gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
+ (gtk_clipboard_get): Clarify the docs. (#156638, Torsten
+ Schoenfeld)
+ (gtk_clipboard_finalize): Warn if the clipboard is still in
+ its displays clipboard list.
+
Considerably speed up GtkUIManager, by changing the semantics
of the dirty flag. It is now propagated up the tree, and
update_node() doesn't descend into clean subtrees. (#143668,
@@ -44,7 +54,7 @@ Thu Nov 11 11:34:32 2004 Jonathan Blandford <jrb@redhat.com>
by leaving room for the resize grip. (#157778, Christian Persch)
* gdk/linux-fb/*: Fix many sparse warnings. (#157253,
- Kjartan Maraas.
+ Kjartan Maraas).
* NEWS: Updates
diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6
index bab240f7d..db565e155 100644
--- a/ChangeLog.pre-2-6
+++ b/ChangeLog.pre-2-6
@@ -1,5 +1,15 @@
2004-11-11 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkuimanager.c (update_node): Remove two more places
+ where we were unconditionally setting "visible", causing
+ unnecessary notifications.
+
+ * gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
+ (gtk_clipboard_get): Clarify the docs. (#156638, Torsten
+ Schoenfeld)
+ (gtk_clipboard_finalize): Warn if the clipboard is still in
+ its displays clipboard list.
+
Considerably speed up GtkUIManager, by changing the semantics
of the dirty flag. It is now propagated up the tree, and
update_node() doesn't descend into clean subtrees. (#143668,
@@ -44,7 +54,7 @@ Thu Nov 11 11:34:32 2004 Jonathan Blandford <jrb@redhat.com>
by leaving room for the resize grip. (#157778, Christian Persch)
* gdk/linux-fb/*: Fix many sparse warnings. (#157253,
- Kjartan Maraas.
+ Kjartan Maraas).
* NEWS: Updates
diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8
index bab240f7d..db565e155 100644
--- a/ChangeLog.pre-2-8
+++ b/ChangeLog.pre-2-8
@@ -1,5 +1,15 @@
2004-11-11 Matthias Clasen <mclasen@redhat.com>
+ * gtk/gtkuimanager.c (update_node): Remove two more places
+ where we were unconditionally setting "visible", causing
+ unnecessary notifications.
+
+ * gtk/gtkclipboard.c (gtk_clipboard_get_for_display):
+ (gtk_clipboard_get): Clarify the docs. (#156638, Torsten
+ Schoenfeld)
+ (gtk_clipboard_finalize): Warn if the clipboard is still in
+ its displays clipboard list.
+
Considerably speed up GtkUIManager, by changing the semantics
of the dirty flag. It is now propagated up the tree, and
update_node() doesn't descend into clean subtrees. (#143668,
@@ -44,7 +54,7 @@ Thu Nov 11 11:34:32 2004 Jonathan Blandford <jrb@redhat.com>
by leaving room for the resize grip. (#157778, Christian Persch)
* gdk/linux-fb/*: Fix many sparse warnings. (#157253,
- Kjartan Maraas.
+ Kjartan Maraas).
* NEWS: Updates
diff --git a/gtk/gtkclipboard.c b/gtk/gtkclipboard.c
index 6a23db7e8..150e801a2 100644
--- a/gtk/gtkclipboard.c
+++ b/gtk/gtkclipboard.c
@@ -194,13 +194,22 @@ gtk_clipboard_finalize (GObject *object)
{
GtkClipboard *clipboard;
GtkWidget *clipboard_widget;
+ GSList *clipboards;
clipboard = GTK_CLIPBOARD (object);
+ clipboards = g_object_get_data (G_OBJECT (clipboard->display), "gtk-clipboard-list");
+ if (g_slist_index (clipboards, clipboard) >= 0)
+ g_warning ("GtkClipboard prematurely finalized");
+
clipboard_widget = get_clipboard_widget (clipboard->display);
clipboard_unset (clipboard);
+ clipboards = g_object_get_data (G_OBJECT (clipboard->display), "gtk-clipboard-list");
+ clipboards = g_slist_remove (clipboards, clipboard);
+ g_object_set_data (G_OBJECT (clipboard->display), "gtk-clipboard-list", clipboards);
+
if (g_main_loop_is_running (clipboard->store_loop))
{
g_main_loop_quit (clipboard->store_loop);
@@ -227,10 +236,9 @@ clipboard_display_closed (GdkDisplay *display,
clipboards = g_object_get_data (G_OBJECT (display), "gtk-clipboard-list");
g_object_run_dispose (G_OBJECT (clipboard));
- g_object_unref (clipboard);
clipboards = g_slist_remove (clipboards, clipboard);
-
g_object_set_data (G_OBJECT (display), "gtk-clipboard-list", clipboards);
+ g_object_unref (clipboard);
}
/**
@@ -268,8 +276,9 @@ clipboard_display_closed (GdkDisplay *display,
* Return value: the appropriate clipboard object. If no
* clipboard already exists, a new one will
* be created. Once a clipboard object has
- * been created, it is persistent for all time and
- * cannot be freed.
+ * been created, it is persistent and, since
+ * it is owned by GTK+, must not be freed or
+ * unrefd.
*
* Since: 2.2
**/
@@ -295,8 +304,9 @@ gtk_clipboard_get_for_display (GdkDisplay *display,
* Return value: the appropriate clipboard object. If no
* clipboard already exists, a new one will
* be created. Once a clipboard object has
- * been created, it is persistent for all time and
- * cannot be freed.
+ * been created, it is persistent and, since
+ * it is owned by GTK+, must not be freed or
+ * unrefd.
**/
GtkClipboard *
gtk_clipboard_get (GdkAtom selection)
diff --git a/gtk/gtkuimanager.c b/gtk/gtkuimanager.c
index 496d3c4ef..7803248f6 100644
--- a/gtk/gtkuimanager.c
+++ b/gtk/gtkuimanager.c
@@ -2110,9 +2110,12 @@ update_node (GtkUIManager *self,
menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (info->proxy));
siblings = gtk_container_get_children (GTK_CONTAINER (menu));
if (siblings != NULL && GTK_IS_TEAROFF_MENU_ITEM (siblings->data))
- g_object_set (G_OBJECT (siblings->data),
- "visible", self->private_data->add_tearoffs && !in_popup,
- NULL);
+ {
+ if (self->private_data->add_tearoffs && !in_popup)
+ gtk_widget_show (GTK_WIDGET (siblings->data));
+ else
+ gtk_widget_hide (GTK_WIDGET (siblings->data));
+ }
g_list_free (siblings);
}
@@ -2207,9 +2210,12 @@ update_node (GtkUIManager *self,
menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (info->proxy));
siblings = gtk_container_get_children (GTK_CONTAINER (menu));
if (siblings != NULL && GTK_IS_TEAROFF_MENU_ITEM (siblings->data))
- g_object_set (G_OBJECT (siblings->data),
- "visible", self->private_data->add_tearoffs && !in_popup,
- NULL);
+ {
+ if (self->private_data->add_tearoffs && !in_popup)
+ gtk_widget_show (GTK_WIDGET (siblings->data));
+ else
+ gtk_widget_hide (GTK_WIDGET (siblings->data));
+ }
g_list_free (siblings);
}
break;