diff --git a/ChangeLog b/ChangeLog index 7ae79a0610..85d718d674 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2007-12-28 Johan Dahlin + + * gtk/gtkdialog.c (gtk_dialog_buildable_custom_finished) + (gtk_dialog_buildable_custom_tag_start): Chain up. + This makes it possible to have accelerators tags on GtkDialog + subclasses. + 2007-12-28 Mathias Hasselmann Add GTK_CALENDAR_SHOW_DETAILS display flag, which chooses if details diff --git a/gtk/gtkdialog.c b/gtk/gtkdialog.c index 3ad4299c98..5ae44b72fa 100644 --- a/gtk/gtkdialog.c +++ b/gtk/gtkdialog.c @@ -280,9 +280,12 @@ gtk_dialog_init (GtkDialog *dialog) gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ON_PARENT); } +static GtkBuildableIface *parent_buildable_iface; + static void gtk_dialog_buildable_interface_init (GtkBuildableIface *iface) { + parent_buildable_iface = g_type_interface_peek_parent (iface); iface->get_internal_child = gtk_dialog_buildable_get_internal_child; iface->custom_tag_start = gtk_dialog_buildable_custom_tag_start; iface->custom_finished = gtk_dialog_buildable_custom_finished; @@ -1365,7 +1368,8 @@ gtk_dialog_buildable_custom_tag_start (GtkBuildable *buildable, return TRUE; } - return FALSE; + return parent_buildable_iface->custom_tag_start (buildable, builder, child, + tagname, parser, data); } static void @@ -1383,7 +1387,11 @@ gtk_dialog_buildable_custom_finished (GtkBuildable *buildable, guint signal_id; if (strcmp (tagname, "action-widgets")) + { + parent_buildable_iface->custom_finished (buildable, builder, child, + tagname, user_data); return; + } dialog = GTK_DIALOG (buildable); parser_data = (ActionWidgetsSubParserData*)user_data; diff --git a/tests/buildertest.c b/tests/buildertest.c index 2b79b334a4..3ee6b91634 100644 --- a/tests/buildertest.c +++ b/tests/buildertest.c @@ -1758,6 +1758,7 @@ test_file (const gchar *filename) g_object_unref (builder); builder = NULL; + } int