diff options
author | JP Rosevear <jpr@ximian.com> | 2003-04-17 03:54:32 +0800 |
---|---|---|
committer | JP Rosevear <jpr@src.gnome.org> | 2003-04-17 03:54:32 +0800 |
commit | fb510056e98c19c20819eb205d39348232968405 (patch) | |
tree | 66021e8ef4f91950eb5a2e5f71d024f0ceee699e /calendar/gui/e-itip-control.c | |
parent | 6cf8e5e2f4577e21d9cd16804c3f7c41e664fa99 (diff) | |
download | gsoc2013-evolution-fb510056e98c19c20819eb205d39348232968405.tar.gz gsoc2013-evolution-fb510056e98c19c20819eb205d39348232968405.tar.zst gsoc2013-evolution-fb510056e98c19c20819eb205d39348232968405.zip |
Fixes #41230
2003-04-16 JP Rosevear <jpr@ximian.com>
Fixes #41230
* gui/e-itip-control.c (show_current): make sure to pass TRUE for
tasks
(start_calendar_server): make sure we don't gtk_main_quit if we
haven't gtk_main'ed
(start_calendar_server_cb): ditto
svn path=/trunk/; revision=20868
Diffstat (limited to 'calendar/gui/e-itip-control.c')
-rw-r--r-- | calendar/gui/e-itip-control.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/calendar/gui/e-itip-control.c b/calendar/gui/e-itip-control.c index ac04a13042..2ca28f056b 100644 --- a/calendar/gui/e-itip-control.c +++ b/calendar/gui/e-itip-control.c @@ -139,32 +139,36 @@ start_calendar_server_cb (CalClient *cal_client, CalClientOpenStatus status, gpointer data) { - gboolean *success = data; - + int *success = data; + int orig = *success; + if (status == CAL_CLIENT_OPEN_SUCCESS) - *success = TRUE; + *success = 1; else - *success = FALSE; + *success = 0; - gtk_main_quit (); /* end the sub event loop */ + if (orig != -1) + gtk_main_quit (); /* end the sub event loop */ } static CalClient * start_calendar_server (EItipControl *itip, char *uri) { CalClient *client; - gboolean success = FALSE; + int success = -1; client = cal_client_new (); g_signal_connect (client, "cal_opened", G_CALLBACK (start_calendar_server_cb), &success); - if (!cal_client_open_calendar (client, uri, TRUE)) + if (!cal_client_open_calendar (client, uri, TRUE)) goto error; /* run a sub event loop to turn cal-client's async load notification into a synchronous call */ - if (!itip->priv->destroyed) { + if (success == -1 && !itip->priv->destroyed) { + success = 0; + gtk_signal_connect (GTK_OBJECT (itip), "destroy", gtk_main_quit, NULL); @@ -174,7 +178,7 @@ start_calendar_server (EItipControl *itip, char *uri) gtk_main_quit, NULL); } - if (success) + if (success == 1) return client; error: @@ -1594,7 +1598,7 @@ show_current (EItipControl *itip) break; case CAL_COMPONENT_TODO: if (!priv->task_clients) - priv->task_clients = get_servers (itip, global_shell_client, tasks_types, FALSE); + priv->task_clients = get_servers (itip, global_shell_client, tasks_types, TRUE); show_current_todo (itip); break; case CAL_COMPONENT_FREEBUSY: |