Now the wizard dialog response override returns a boolean (to stop
authorJose Dapena Paz <jdapena@igalia.com>
Mon, 23 Feb 2009 17:04:18 +0000 (17:04 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Mon, 23 Feb 2009 17:04:18 +0000 (17:04 +0000)
further processing of the response event).

pmo-trunk-r7645

src/widgets/modest-wizard-dialog.c
src/widgets/modest-wizard-dialog.h

index 4b5c84e..eca8b2e 100644 (file)
@@ -533,7 +533,15 @@ response (ModestWizardDialog   *wizard_dialog,
     gboolean is_first, is_last;
 
     if (priv->override_func) {
-       priv->override_func (wizard_dialog, response_id, gtk_notebook_get_current_page (notebook));
+           if (priv->override_func (wizard_dialog, response_id, gtk_notebook_get_current_page (notebook))) {
+                   /* Don't let the dialog close */
+                   g_signal_stop_emission_by_name (wizard_dialog, "response");
+                   
+                   /* Force refresh of title */
+                   if (priv->autotitle) 
+                           create_title (wizard_dialog);
+                   return;
+           }
     }
     
     switch (response_id) {
index df0c01c..2d425b8 100644 (file)
@@ -93,8 +93,11 @@ struct _ModestWizardDialogClass {
     void (*_gtk_reserved4)  (void);
 };
 
-typedef void (* ModestWizardDialogResponseOverrideFunc) (ModestWizardDialog *dialog, 
-                                                        gint response_id, gint page_number);
+/*
+ * Returning %TRUE means you don't allow further processing of the event in ModestWizardDialog
+ */
+typedef gboolean (* ModestWizardDialogResponseOverrideFunc) (ModestWizardDialog *dialog, 
+                                                            gint response_id, gint page_number);
 
 
 GType modest_wizard_dialog_get_type   (void) G_GNUC_CONST;