[gedit/wip/spell-checking] spell-language-dialog: override the "response" object signal handler



commit f802d5105992e281a1e1238bc7737082f69354fb
Author: Sébastien Wilmet <swilmet gnome org>
Date:   Tue Jul 21 18:12:26 2015 +0200

    spell-language-dialog: override the "response" object signal handler

 plugins/spell/gedit-spell-language-dialog.c |   31 +++++++++++++--------------
 1 files changed, 15 insertions(+), 16 deletions(-)
---
diff --git a/plugins/spell/gedit-spell-language-dialog.c b/plugins/spell/gedit-spell-language-dialog.c
index e2a0adf..db386e6 100644
--- a/plugins/spell/gedit-spell-language-dialog.c
+++ b/plugins/spell/gedit-spell-language-dialog.c
@@ -43,27 +43,31 @@ struct _GeditSpellLanguageDialog
 G_DEFINE_TYPE (GeditSpellLanguageDialog, gedit_spell_language_dialog, GTK_TYPE_DIALOG)
 
 static void
-gedit_spell_language_dialog_class_init (GeditSpellLanguageDialogClass *klass)
-{
-       /* GObjectClass *object_class = G_OBJECT_CLASS (klass); */
-}
-
-static void
-dialog_response_handler (GtkDialog *dialog,
-                        gint       res_id)
+gedit_spell_language_dialog_response (GtkDialog *dialog,
+                                     gint       response_id)
 {
-       if (res_id == GTK_RESPONSE_HELP)
+       if (response_id == GTK_RESPONSE_HELP)
        {
                gedit_app_show_help (GEDIT_APP (g_application_get_default ()),
                                     GTK_WINDOW (dialog),
                                     NULL,
                                     "gedit-spellcheck");
-
-               g_signal_stop_emission_by_name (dialog, "response");
+       }
+       else if (GTK_DIALOG_CLASS (gedit_spell_language_dialog_parent_class)->response != NULL)
+       {
+               GTK_DIALOG_CLASS (gedit_spell_language_dialog_parent_class)->response (dialog, response_id);
        }
 }
 
 static void
+gedit_spell_language_dialog_class_init (GeditSpellLanguageDialogClass *klass)
+{
+       GtkDialogClass *dialog_class = GTK_DIALOG_CLASS (klass);
+
+       dialog_class->response = gedit_spell_language_dialog_response;
+}
+
+static void
 scroll_to_selected (GtkTreeView *tree_view)
 {
        GtkTreeModel *model;
@@ -131,11 +135,6 @@ create_dialog (GeditSpellLanguageDialog *dialog,
        gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_action_area (GTK_DIALOG (dialog))),
                             6);
 
-       g_signal_connect (dialog,
-                         "response",
-                         G_CALLBACK (dialog_response_handler),
-                         NULL);
-
        builder = gtk_builder_new ();
        gtk_builder_add_objects_from_resource (builder, 
"/org/gnome/gedit/plugins/spell/ui/languages-dialog.ui",
                                               root_objects, NULL);


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