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:
@ -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
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user