diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-05-08 09:19:21 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-05-11 22:21:39 -0400 |
commit | d59d9d4bd57d1a83d9db2fa92e108a0004a4cf13 (patch) | |
tree | 50aa970d8d8ae31dbf74469d28f4ebea79298a89 /gtk/gtkheaderbar.c | |
parent | 3d100abea8604682b6d41aaa4781c2dcb3fb981b (diff) | |
download | gtk+-d59d9d4bd57d1a83d9db2fa92e108a0004a4cf13.tar.gz |
headerbar: Add gtk_header_bar_remove
This is a replacement for gtk_container_remove.
Diffstat (limited to 'gtk/gtkheaderbar.c')
-rw-r--r-- | gtk/gtkheaderbar.c | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/gtk/gtkheaderbar.c b/gtk/gtkheaderbar.c index eee669e2c8..208415c701 100644 --- a/gtk/gtkheaderbar.c +++ b/gtk/gtkheaderbar.c @@ -495,31 +495,38 @@ gtk_header_bar_add (GtkContainer *container, gtk_header_bar_pack (GTK_HEADER_BAR (container), child, GTK_PACK_START); } -static void -gtk_header_bar_remove (GtkContainer *container, - GtkWidget *widget) +/** + * gtk_header_bar_remove: + * @bar: a #GtkHeaderBar + * @child: the child to remove + * + * Removes a child from @bar, after it has been added + * with gtk_header_bar_pack_start(), gtk_header_bar_pack_end() + * or gtk_header_bar_set_title_widget(). + */ +void +gtk_header_bar_remove (GtkHeaderBar *bar, + GtkWidget *child) { - GtkHeaderBar *bar = GTK_HEADER_BAR (container); GtkHeaderBarPrivate *priv = gtk_header_bar_get_instance_private (bar); GtkWidget *parent; gboolean removed = FALSE; - parent = gtk_widget_get_parent (widget); + parent = gtk_widget_get_parent (child); if (parent == priv->start_box) { - gtk_container_remove (GTK_CONTAINER (priv->start_box), widget); + gtk_container_remove (GTK_CONTAINER (priv->start_box), child); removed = TRUE; } else if (parent == priv->end_box) { - gtk_container_remove (GTK_CONTAINER (priv->end_box), widget); + gtk_container_remove (GTK_CONTAINER (priv->end_box), child); removed = TRUE; } - else if (parent == GTK_WIDGET (container) && - gtk_center_box_get_center_widget (GTK_CENTER_BOX (priv->center_box)) == widget) + else if (parent == priv->center_box) { - gtk_widget_unparent (widget); + gtk_center_box_set_center_widget (GTK_CENTER_BOX (priv->center_box), NULL); removed = TRUE; } |