[evolution-patches] Fixes #272005



Hey,

This fixes the "dialog closes" when Help button is clicked issue with
Send Options Dialog. The patch does not associate any action with the
Help button but changes the signal handling such that it does not close
the Send Options dialog.

Cheers,
Shreyas


Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/evolution/widgets/misc/ChangeLog,v
retrieving revision 1.355
diff -u -p -w -r1.355 ChangeLog
--- ChangeLog	6 May 2005 06:28:27 -0000	1.355
+++ ChangeLog	12 May 2005 09:46:05 -0000
@@ -1,3 +1,7 @@
+2005-05-12  Shreyas Srinivasan	<sshreyas novell com>
+
+	* e-send-options.c : Fixed #272005
+	
 2005-05-06  Sarfraaz Ahmed <asarfraaz novell com>
 
 	* e-send-options.glade : Fixed a typo. #273095
Index: e-send-options.c
===================================================================
RCS file: /cvs/gnome/evolution/widgets/misc/e-send-options.c,v
retrieving revision 1.5
diff -u -p -w -r1.5 e-send-options.c
--- e-send-options.c	11 Mar 2005 12:02:48 -0000	1.5
+++ e-send-options.c	12 May 2005 09:46:21 -0000
@@ -95,6 +95,7 @@ static void e_sendoptions_dialog_class_i
 static void e_sendoptions_dialog_finalize (GObject *object);
 static void e_sendoptions_dialog_init (GObject *object);
 static void e_sendoptions_dialog_dispose (GObject *object);
+static void e_send_options_cb (GtkDialog *dialog, gint state, gpointer func_data);
 
 static GObjectClass *parent_class = NULL;
 
@@ -379,6 +380,7 @@ init_widgets (ESendOptionsDialog *sod)
 	g_signal_connect (priv->delay_delivery, "toggled", G_CALLBACK (delay_delivery_toggled_cb), sod);	
 	g_signal_connect (priv->create_sent, "toggled", G_CALLBACK (sent_item_toggled_cb), sod);
 
+	g_signal_connect (GTK_DIALOG (priv->main), "response", G_CALLBACK(e_send_options_cb), sod);
 	g_signal_connect (priv->delay_until, "changed", G_CALLBACK (delay_until_date_changed_cb), sod);
 
 	if (priv->global)
@@ -568,6 +570,28 @@ e_sendoptions_set_global (ESendOptionsDi
 	return TRUE;
 }
 
+static void e_send_options_cb (GtkDialog *dialog, gint state, gpointer func_data)
+{
+
+    ESendOptionsDialogPrivate *priv;
+    ESendOptionsDialog *sod ;     
+
+    sod = func_data;
+    priv = sod->priv;
+
+    switch (state) {
+	case GTK_RESPONSE_OK:
+	    e_send_options_get_widgets_data (sod);
+	case GTK_RESPONSE_CANCEL:
+	    gtk_widget_hide (priv->main);
+	    gtk_widget_destroy (priv->main);
+	    g_object_unref (priv->xml);
+	    break;
+	case GTK_RESPONSE_HELP:
+	    break;
+    }
+}
+
 gboolean 
 e_sendoptions_dialog_run (ESendOptionsDialog *sod, GtkWidget *parent, Item_type type)
 {
@@ -607,14 +631,7 @@ e_sendoptions_dialog_run (ESendOptionsDi
 	sensitize_widgets (sod);
 	init_widgets (sod);
 
-	result = gtk_dialog_run (GTK_DIALOG (priv->main));
-	
-	if (result == GTK_RESPONSE_OK) 
-		e_send_options_get_widgets_data (sod);
-	
-	gtk_widget_hide (priv->main);
-	gtk_widget_destroy (priv->main);
-	g_object_unref (priv->xml);
+	gtk_widget_show (priv->main);
 
 	return TRUE;
 }


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