diff options
-rw-r--r-- | shell/ChangeLog | 9 | ||||
-rw-r--r-- | shell/evolution-activity-client.c | 10 |
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 ()); |