[gtk/pack-type: 1/5] dialog: Stop using GtkHeaderBar::pack-type



commit 2fd2c61d37a7eaa883cae2ae5d47b5f1c5c3c320
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Mar 27 13:35:38 2019 -0400

    dialog: Stop using GtkHeaderBar::pack-type
    
    We want to get rid of child properties.

 gtk/gtkdialog.c | 38 +++++++++++++-------------------------
 1 file changed, 13 insertions(+), 25 deletions(-)
---
diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c
index 11b4d7be9b..dc64bea60d 100644
--- a/gtk/gtkdialog.c
+++ b/gtk/gtkdialog.c
@@ -344,42 +344,25 @@ add_response_data (GtkDialog *dialog,
 }
 
 static void
-apply_response_for_header_bar (GtkDialog *dialog,
-                               GtkWidget *child,
-                               gint       response_id)
+add_to_header_bar (GtkDialog *dialog,
+                   GtkWidget *child,
+                   gint       response_id)
 {
   GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog);
-  GtkPackType pack;
 
-  g_assert (gtk_widget_get_parent (child) == priv->headerbar);
+  gtk_widget_set_valign (child, GTK_ALIGN_CENTER);
 
   if (response_id == GTK_RESPONSE_CANCEL || response_id == GTK_RESPONSE_HELP)
-    pack = GTK_PACK_START;
+    gtk_header_bar_pack_start (GTK_HEADER_BAR (priv->headerbar), child);
   else
-    pack = GTK_PACK_END;
+    gtk_header_bar_pack_end (GTK_HEADER_BAR (priv->headerbar), child);
 
-  gtk_container_child_set (GTK_CONTAINER (priv->headerbar), child,
-                           "pack-type", pack,
-                           NULL);
+  gtk_size_group_add_widget (priv->size_group, child);
 
   if (response_id == GTK_RESPONSE_CANCEL || response_id == GTK_RESPONSE_CLOSE)
     gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (priv->headerbar), FALSE);
 }
 
-static void
-add_to_header_bar (GtkDialog *dialog,
-                   GtkWidget *child,
-                   gint       response_id)
-{
-  GtkDialogPrivate *priv = gtk_dialog_get_instance_private (dialog);
-
-  gtk_widget_set_valign (child, GTK_ALIGN_CENTER);
-  gtk_container_add (GTK_CONTAINER (priv->headerbar), child);
-  gtk_size_group_add_widget (priv->size_group, child);
-  apply_response_for_header_bar (dialog, child, response_id);
-
-}
-
 static void
 apply_response_for_action_area (GtkDialog *dialog,
                                 GtkWidget *child,
@@ -1536,7 +1519,12 @@ gtk_dialog_buildable_custom_finished (GtkBuildable *buildable,
       else if (gtk_widget_get_parent (GTK_WIDGET (object)) == priv->headerbar)
         {
           if (is_action)
-            apply_response_for_header_bar (dialog, GTK_WIDGET (object), ad->response_id);
+            {
+              g_object_ref (object);
+              gtk_container_remove (GTK_CONTAINER (priv->headerbar), GTK_WIDGET (object));
+              add_to_header_bar (dialog, GTK_WIDGET (object), ad->response_id);
+              g_object_unref (object);
+            }
         }
 
       if (item->is_default)


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