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
This commit is contained in:
2
2001-11-03 00:07:33 +00:00
committed by Michael Zucci
parent 8fcca3dc0b
commit e735e8fa89
5 changed files with 49 additions and 9 deletions

View File

@ -1,3 +1,22 @@
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.
2001-11-01 Larry Ewing <lewing@ximian.com>
* folder-browser.c (folder_browser_copy): fix cut & paste from the

View File

@ -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;
}

View File

@ -69,7 +69,7 @@
#include <camel/camel-mime-message.h>
#include <camel/camel-stream-mem.h>
#define d(x)
#define d(x)
#define PARENT_TYPE (gtk_table_get_type ())
@ -895,6 +895,16 @@ void
folder_browser_set_ui_component (FolderBrowser *fb, BonoboUIComponent *uicomp)
{
g_return_if_fail (IS_FOLDER_BROWSER (fb));
if (fb->sensitize_timeout_id) {
g_source_remove (fb->sensitize_timeout_id);
fb->sensitize_timeout_id = 0;
}
if (fb->sensitise_state) {
g_hash_table_destroy(fb->sensitise_state);
fb->sensitise_state = NULL;
}
if (fb->uicomp)
bonobo_object_unref (BONOBO_OBJECT (fb->uicomp));
@ -1920,7 +1930,7 @@ done_message_selected (CamelFolder *folder, char *uid, CamelMimeMessage *msg, vo
static gboolean
do_message_selected (FolderBrowser *fb)
{
d(printf ("selecting uid %s (delayed)\n", fb->new_uid ? fb->new_uid : "NONE"));
d(printf ("%p: selecting uid %s (delayed)\n", fb, fb->new_uid ? fb->new_uid : "NONE"));
fb->loading_id = 0;
@ -1944,7 +1954,7 @@ do_message_selected (FolderBrowser *fb)
static void
on_message_selected (MessageList *ml, const char *uid, FolderBrowser *fb)
{
d(printf ("selecting uid %s (direct)\n", uid ? uid : "NONE"));
d(printf ("%p: selecting uid %s (direct)\n", fb, uid ? uid : "NONE"));
if (fb->loading_id != 0)
gtk_timeout_remove (fb->loading_id);

View File

@ -424,6 +424,7 @@ composer_sent_cb (char *uri, CamelMimeMessage *message, gboolean sent, void *dat
}
gtk_widget_destroy (GTK_WIDGET (send->composer));
} else {
e_msg_composer_set_enable_autosave(send->composer, TRUE);
gtk_widget_show (GTK_WIDGET (send->composer));
gtk_object_unref (GTK_OBJECT (send->composer));
}
@ -617,6 +618,7 @@ composer_send_cb (EMsgComposer *composer, gpointer data)
send->composer = composer;
gtk_object_ref (GTK_OBJECT (composer));
gtk_widget_hide (GTK_WIDGET (composer));
e_msg_composer_set_enable_autosave(composer, FALSE);
mail_send_mail (transport->url, message, composer_sent_cb, send);
}

View File

@ -134,7 +134,9 @@ static void
message_browser_message_list_built (MessageList *ml, MessageBrowser *mb)
{
const char *uid = gtk_object_get_data (GTK_OBJECT (mb), "uid");
gtk_signal_disconnect_by_func (GTK_OBJECT (ml), message_browser_message_list_built, mb);
message_list_select_uid (ml, uid);
}