aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--shell/ChangeLog9
-rw-r--r--shell/evolution-activity-client.c10
2 files changed, 14 insertions, 5 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog
index ee1807db41..1df13d080f 100644
--- a/shell/ChangeLog
+++ b/shell/ChangeLog
@@ -1,3 +1,12 @@
+2001-07-30 Ettore Perazzoli <ettore@ximian.com>
+
+ [This should fix #5110, shell crash when switching folders.]
+
+ * evolution-activity-client.c (update_timeout_callback): Set the
+ `have_pending_update' flag before doing the CORBA call.
+ (evolution_activity_client_update): Set the timeout before doing
+ the CORBA call.
+
2001-07-30 Jason Leach <jleach@ximian.com>
* e-shortcuts-view.c (rename_group_cb): Remember the current group
diff --git a/shell/evolution-activity-client.c b/shell/evolution-activity-client.c
index 3846719cc7..696561f78d 100644
--- a/shell/evolution-activity-client.c
+++ b/shell/evolution-activity-client.c
@@ -194,8 +194,8 @@ update_timeout_callback (void *data)
DEBUG ();
if (priv->have_pending_update) {
- corba_update_progress (activity_client, priv->new_information, priv->new_progress);
priv->have_pending_update = FALSE;
+ corba_update_progress (activity_client, priv->new_information, priv->new_progress);
return TRUE;
} else {
priv->next_update_timeout_id = 0;
@@ -436,15 +436,15 @@ evolution_activity_client_update (EvolutionActivityClient *activity_client,
/* There is no pending timeout, so the last CORBA update
happened more than UPDATE_DELAY msecs ago. */
- retval = corba_update_progress (activity_client, information, progress);
-
- /* Set up a timeout so we can check against it at the next
- update request. */
+ /* First of all, we set up a timeout so we can check against it
+ at the next update request. */
priv->next_update_timeout_id = g_timeout_add (UPDATE_DELAY,
update_timeout_callback,
activity_client);
+ retval = corba_update_progress (activity_client, information, progress);
+
g_print ("*** ActivityClient: g_timeout_add %d %p [%ld]\n",
priv->next_update_timeout_id, activity_client, (long) pthread_self ());