dialog: Check header bar type before calling track_default_decoration()
authorAlice Mikhaylenko <alicem@gnome.org>
Sun, 24 Sep 2023 11:22:36 +0000 (15:22 +0400)
committerMatthias Clasen <mclasen@redhat.com>
Thu, 28 Sep 2023 00:42:44 +0000 (20:42 -0400)
Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/6116

gtk/deprecated/gtkdialog.c

index c046c61df582babc0ec35b64a7a24e1598cb792f..8dd104db023ed035e7397f822aaca9e5b83afed0 100644 (file)
@@ -454,7 +454,8 @@ gtk_dialog_constructed (GObject *object)
         }
       g_list_free (children);
 
-      _gtk_header_bar_track_default_decoration (GTK_HEADER_BAR (priv->headerbar));
+      if (GTK_IS_HEADER_BAR (priv->headerbar))
+        _gtk_header_bar_track_default_decoration (GTK_HEADER_BAR (priv->headerbar));
     }
   else
     {
@@ -1397,7 +1398,8 @@ gtk_dialog_buildable_add_child (GtkBuildable  *buildable,
   else if (g_str_equal (type, "titlebar"))
     {
       priv->headerbar = GTK_WIDGET (child);
-      _gtk_header_bar_track_default_decoration (GTK_HEADER_BAR (priv->headerbar));
+      if (GTK_IS_HEADER_BAR (priv->headerbar))
+        _gtk_header_bar_track_default_decoration (GTK_HEADER_BAR (priv->headerbar));
       gtk_window_set_titlebar (GTK_WINDOW (buildable), priv->headerbar);
     }
   else if (g_str_equal (type, "action"))