aboutsummaryrefslogtreecommitdiffstats
path: root/mail/folder-browser-ui.c
diff options
context:
space:
mode:
author2 <NotZed@Ximian.com>2001-11-03 08:07:33 +0800
committerMichael Zucci <zucchi@src.gnome.org>2001-11-03 08:07:33 +0800
commite735e8fa8965d907fe91467482e0fb5d00364bc2 (patch)
treea769546f14ac3b4c1fce79c462c24b2f7c6d979c /mail/folder-browser-ui.c
parent8fcca3dc0b5e3355977230ce61dc172652e69032 (diff)
downloadgsoc2013-evolution-e735e8fa8965d907fe91467482e0fb5d00364bc2.tar.gz
gsoc2013-evolution-e735e8fa8965d907fe91467482e0fb5d00364bc2.tar.zst
gsoc2013-evolution-e735e8fa8965d907fe91467482e0fb5d00364bc2.zip
Disconnect from the message_list_built function so we dont do it every
2001-11-02 <NotZed@Ximian.com> * message-browser.c (message_browser_message_list_built): Disconnect from the message_list_built function so we dont do it every time the list is rebuilt. * mail-callbacks.c (composer_send_cb): Disable autosave when we're sending mail. (composer_sent_cb): Re-enable autosave. * folder-browser-ui.c (fbui_sensitize_timeout): Make sure we reset any data we're using on the folderbrowser before doing anything 'cause things could vanish while we're doing it, and also ref/unref the folderbrowser so it doesn't vanish while w'ere working. * folder-browser.c (folder_browser_set_ui_component): If we are changing the ui comp, remove any pending timeouts. For #13719. svn path=/trunk/; revision=14575
Diffstat (limited to 'mail/folder-browser-ui.c')
-rw-r--r--mail/folder-browser-ui.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/mail/folder-browser-ui.c b/mail/folder-browser-ui.c
index 5b137d95bc..4e673cb493 100644
--- a/mail/folder-browser-ui.c
+++ b/mail/folder-browser-ui.c
@@ -455,13 +455,20 @@ static gboolean
fbui_sensitize_timeout (gpointer data)
{
FolderBrowser *fb = FOLDER_BROWSER (data);
- GSList *iter;
+ GSList *iter, *list;
struct sensitize_data *sd;
int i;
+ list = fb->sensitize_changes;
+ fb->sensitize_changes = NULL;
+ iter = list;
+ fb->sensitize_timeout_id = 0;
+
+ gtk_object_ref((GtkObject *)fb);
+
/*bonobo_ui_component_freeze (uic, NULL);*/
- for (iter = fb->sensitize_changes; iter; iter = iter->next) {
+ for (; iter; iter = iter->next) {
sd = (struct sensitize_data *) iter->data;
for (i=0;sd->items[i];i++) {
if (fb->uicomp)
@@ -470,9 +477,9 @@ fbui_sensitize_timeout (gpointer data)
g_free(sd);
}
- g_slist_free (fb->sensitize_changes);
- fb->sensitize_changes = NULL;
- fb->sensitize_timeout_id = 0;
+ g_slist_free (list);
+ gtk_object_unref((GtkObject *)fb);
+
return FALSE;
}