evolution r36473 - in trunk: mail widgets/misc
- From: mcrha svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution r36473 - in trunk: mail widgets/misc
- Date: Mon, 29 Sep 2008 10:07:12 +0000 (UTC)
Author: mcrha
Date: Mon Sep 29 10:07:12 2008
New Revision: 36473
URL: http://svn.gnome.org/viewvc/evolution?rev=36473&view=rev
Log:
2008-09-29 Milan Crha <mcrha redhat com>
** Fix for bug #530716
* mail/mail-session.c: (user_message_response), (user_message_exec),
(user_message_response_free): Differentiate between response
with valid message pointer and with one already freed.
* widgets/misc/e-activity-handler.c: (error_cleanup): GtkDialog errors close
by the response message, not as other widgets, because creator
of the dialog waits for that signal and takes care of the widget.
Modified:
trunk/mail/ChangeLog
trunk/mail/mail-session.c
trunk/widgets/misc/ChangeLog
trunk/widgets/misc/e-activity-handler.c
Modified: trunk/mail/mail-session.c
==============================================================================
--- trunk/mail/mail-session.c (original)
+++ trunk/mail/mail-session.c Mon Sep 29 10:07:12 2008
@@ -286,20 +286,13 @@
static void user_message_exec (struct _user_message_msg *m);
-/* clicked, send back the reply */
static void
-user_message_response (GtkDialog *dialog, int button, struct _user_message_msg *m)
+user_message_response_free (GtkDialog *dialog, int button, struct _user_message_msg *m)
{
gtk_widget_destroy ((GtkWidget *) dialog);
user_message_dialog = NULL;
- /* if !allow_cancel, then we've already replied */
- if (m->allow_cancel) {
- m->result = button == GTK_RESPONSE_OK;
- e_flag_set (m->done);
- }
-
/* check for pendings */
if (!g_queue_is_empty (&user_message_queue)) {
m = g_queue_pop_head (&user_message_queue);
@@ -308,6 +301,19 @@
}
}
+/* clicked, send back the reply */
+static void
+user_message_response (GtkDialog *dialog, int button, struct _user_message_msg *m)
+{
+ /* if !allow_cancel, then we've already replied */
+ if (m->allow_cancel) {
+ m->result = button == GTK_RESPONSE_OK;
+ e_flag_set (m->done);
+ }
+
+ user_message_response_free (dialog, button, m);
+}
+
static void
user_message_exec (struct _user_message_msg *m)
{
@@ -364,7 +370,7 @@
} else {
g_signal_connect (
user_message_dialog, "response",
- G_CALLBACK (user_message_response), m);
+ G_CALLBACK (user_message_response_free), m);
g_object_set_data (
user_message_dialog, "response-handled",
GINT_TO_POINTER (TRUE));
@@ -375,8 +381,8 @@
static void
user_message_free (struct _user_message_msg *m)
{
- g_free(m->prompt);
- e_flag_free(m->done);
+ g_free (m->prompt);
+ e_flag_free (m->done);
}
static MailMsgInfo user_message_info = {
Modified: trunk/widgets/misc/e-activity-handler.c
==============================================================================
--- trunk/widgets/misc/e-activity-handler.c (original)
+++ trunk/widgets/misc/e-activity-handler.c Mon Sep 29 10:07:12 2008
@@ -515,7 +515,12 @@
/* Error older than wanted time. So cleanup */
e_logger_log (priv->logger, info->error_type, g_object_get_data (info->error, "primary"),
g_object_get_data (info->error, "secondary"));
- gtk_widget_destroy (info->error);
+
+ if (GTK_IS_DIALOG (info->error))
+ gtk_dialog_response (GTK_DIALOG (info->error), GTK_RESPONSE_CLOSE);
+ else
+ gtk_widget_destroy (info->error);
+
node = p;
p = p->next;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]