]> Pileus Git - ~andy/gtk/commitdiff
Override hide_all in addition to show_all in order to keep them symmetric.
authorDaniel Elstner <daniel.elstner@gmx.net>
Thu, 23 Jan 2003 19:48:39 +0000 (19:48 +0000)
committerDaniel Elstner <daniel@src.gnome.org>
Thu, 23 Jan 2003 19:48:39 +0000 (19:48 +0000)
2003-01-23  Daniel Elstner  <daniel.elstner@gmx.net>

* gtk/gtktoolbar.c (gtk_toolbar_hide_all): Override hide_all
in addition to show_all in order to keep them symmetric. (#102201)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtktoolbar.c

index 8420548afd2c46e7d30acba2d023bc42952cdc78..24047ad35ff6aabb25b3b54c55572dcc0e17a6df 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2003-01-23  Daniel Elstner  <daniel.elstner@gmx.net>
+
+       * gtk/gtktoolbar.c (gtk_toolbar_hide_all): Override hide_all
+       in addition to show_all in order to keep them symmetric. (#102201)
+
 Wed Jan 22 14:18:46 2003  Manish Singh  <yosh@gimp.org>
 
        * gdk/x11/gdkevents-x11.c (translate_key_event): add a "return" at
index 8420548afd2c46e7d30acba2d023bc42952cdc78..24047ad35ff6aabb25b3b54c55572dcc0e17a6df 100644 (file)
@@ -1,3 +1,8 @@
+2003-01-23  Daniel Elstner  <daniel.elstner@gmx.net>
+
+       * gtk/gtktoolbar.c (gtk_toolbar_hide_all): Override hide_all
+       in addition to show_all in order to keep them symmetric. (#102201)
+
 Wed Jan 22 14:18:46 2003  Manish Singh  <yosh@gimp.org>
 
        * gdk/x11/gdkevents-x11.c (translate_key_event): add a "return" at
index 8420548afd2c46e7d30acba2d023bc42952cdc78..24047ad35ff6aabb25b3b54c55572dcc0e17a6df 100644 (file)
@@ -1,3 +1,8 @@
+2003-01-23  Daniel Elstner  <daniel.elstner@gmx.net>
+
+       * gtk/gtktoolbar.c (gtk_toolbar_hide_all): Override hide_all
+       in addition to show_all in order to keep them symmetric. (#102201)
+
 Wed Jan 22 14:18:46 2003  Manish Singh  <yosh@gimp.org>
 
        * gdk/x11/gdkevents-x11.c (translate_key_event): add a "return" at
index 8420548afd2c46e7d30acba2d023bc42952cdc78..24047ad35ff6aabb25b3b54c55572dcc0e17a6df 100644 (file)
@@ -1,3 +1,8 @@
+2003-01-23  Daniel Elstner  <daniel.elstner@gmx.net>
+
+       * gtk/gtktoolbar.c (gtk_toolbar_hide_all): Override hide_all
+       in addition to show_all in order to keep them symmetric. (#102201)
+
 Wed Jan 22 14:18:46 2003  Manish Singh  <yosh@gimp.org>
 
        * gdk/x11/gdkevents-x11.c (translate_key_event): add a "return" at
index 8420548afd2c46e7d30acba2d023bc42952cdc78..24047ad35ff6aabb25b3b54c55572dcc0e17a6df 100644 (file)
@@ -1,3 +1,8 @@
+2003-01-23  Daniel Elstner  <daniel.elstner@gmx.net>
+
+       * gtk/gtktoolbar.c (gtk_toolbar_hide_all): Override hide_all
+       in addition to show_all in order to keep them symmetric. (#102201)
+
 Wed Jan 22 14:18:46 2003  Manish Singh  <yosh@gimp.org>
 
        * gdk/x11/gdkevents-x11.c (translate_key_event): add a "return" at
index 03b13775c5aacfa6d9ce2b00359e17d3a1fed9df..3f57aa4edc256181e984dcbd4e6781e8956d5ce1 100644 (file)
@@ -97,6 +97,7 @@ static gboolean gtk_toolbar_focus                (GtkWidget       *widget,
 static void gtk_toolbar_screen_changed           (GtkWidget       *widget,
                                                  GdkScreen       *previous_screen);
 static void gtk_toolbar_show_all                 (GtkWidget       *widget);
+static void gtk_toolbar_hide_all                 (GtkWidget       *widget);
 static void gtk_toolbar_add                      (GtkContainer    *container,
                                                  GtkWidget       *widget);
 static void gtk_toolbar_remove                   (GtkContainer    *container,
@@ -194,6 +195,7 @@ gtk_toolbar_class_init (GtkToolbarClass *class)
   widget_class->size_allocate = gtk_toolbar_size_allocate;
   widget_class->style_set = gtk_toolbar_style_set;
   widget_class->show_all = gtk_toolbar_show_all;
+  widget_class->hide_all = gtk_toolbar_hide_all;
   widget_class->focus = gtk_toolbar_focus;
   widget_class->screen_changed = gtk_toolbar_screen_changed;
   
@@ -848,6 +850,26 @@ gtk_toolbar_show_all (GtkWidget *widget)
   gtk_widget_show (widget);
 }
 
+static void
+child_hide_all (GtkWidget *widget)
+{
+  /* Don't hide our own children, since that would also hide
+   * widgets that won't be shown again by gtk_toolbar_show_all().
+   */
+  if (!g_object_get_data (G_OBJECT (widget),
+                          "gtk-toolbar-is-child"))
+    gtk_widget_hide_all (widget);
+}
+
+static void
+gtk_toolbar_hide_all (GtkWidget *widget)
+{
+  gtk_container_foreach (GTK_CONTAINER (widget),
+                        (GtkCallback) child_hide_all,
+                        NULL);
+  gtk_widget_hide (widget);
+}
+
 static void
 gtk_toolbar_add (GtkContainer *container,
                 GtkWidget    *widget)