[gtk+] searchbar: Properly remove child widgets



commit fd148d1ef52735192171eb303fba9c9fb5d9ae07
Author: Timm Bäder <mail baedert org>
Date:   Sun Feb 4 17:51:18 2018 +0100

    searchbar: Properly remove child widgets
    
    Since the GtkSearchBar is not the direct parent, we need to remove them
    properly from priv->box_center.

 gtk/gtksearchbar.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/gtk/gtksearchbar.c b/gtk/gtksearchbar.c
index 316abc3..acd8599 100644
--- a/gtk/gtksearchbar.c
+++ b/gtk/gtksearchbar.c
@@ -321,6 +321,23 @@ gtk_search_bar_add (GtkContainer *container,
 }
 
 static void
+gtk_search_bar_remove (GtkContainer *container,
+                       GtkWidget    *child)
+{
+  GtkSearchBar *bar = GTK_SEARCH_BAR (container);
+  GtkSearchBarPrivate *priv = gtk_search_bar_get_instance_private (bar);
+
+  if (priv->box_center == NULL)
+    {
+      GTK_CONTAINER_CLASS (gtk_search_bar_parent_class)->remove (container, child);
+    }
+  else
+    {
+      gtk_container_remove (GTK_CONTAINER (priv->box_center), child);
+    }
+}
+
+static void
 gtk_search_bar_set_property (GObject      *object,
                              guint         prop_id,
                              const GValue *value,
@@ -390,6 +407,7 @@ gtk_search_bar_class_init (GtkSearchBarClass *klass)
   object_class->get_property = gtk_search_bar_get_property;
 
   container_class->add = gtk_search_bar_add;
+  container_class->remove = gtk_search_bar_remove;
 
   /**
    * GtkSearchBar:search-mode-enabled:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]