From 989e19963822b5dc48d0074f876a29c695f63158 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Tue, 26 Nov 2002 06:43:31 +0000 Subject: gtk_widget_set_parent_window -> gtk_window_set_transient_for. 2002-11-26 Not Zed * mail-account-editor.c (mail_account_editor_new): gtk_widget_set_parent_window -> gtk_window_set_transient_for. * mail-callbacks.c (composer_send_queued_cb): dont unref composer. * message-browser.c (message_browser_destroy): moved back from finalise. 2002-11-25 Not Zed * message-list.c (message_list_dispose): move saving tree state here. (message_list_finalise): And take it from here. * mail-display.c (mail_display_destroy): @#$@# gtk. changed this around a bit. (mail_display_init): Fix prototype, its a gobject. (mail_display_init): ref/sink the invisible gtkobject. svn path=/trunk/; revision=18919 --- mail/ChangeLog | 21 ++++++++++++++++++ mail/mail-account-editor.c | 2 +- mail/mail-callbacks.c | 1 - mail/mail-display.c | 54 ++++++++++++++++++++++++++++------------------ mail/message-browser.c | 15 +++++++------ mail/message-list.c | 17 ++++++++++++--- 6 files changed, 78 insertions(+), 32 deletions(-) (limited to 'mail') diff --git a/mail/ChangeLog b/mail/ChangeLog index bed571fc0d..88d87be4ce 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,24 @@ +2002-11-26 Not Zed + + * mail-account-editor.c (mail_account_editor_new): + gtk_widget_set_parent_window -> gtk_window_set_transient_for. + + * mail-callbacks.c (composer_send_queued_cb): dont unref composer. + + * message-browser.c (message_browser_destroy): moved back from + finalise. + +2002-11-25 Not Zed + + * message-list.c (message_list_dispose): move saving tree state + here. + (message_list_finalise): And take it from here. + + * mail-display.c (mail_display_destroy): @#$@# gtk. changed this + around a bit. + (mail_display_init): Fix prototype, its a gobject. + (mail_display_init): ref/sink the invisible gtkobject. + 2002-11-22 Not Zed * mail-callbacks.c (ask_confirm_for_unwanted_html_mail): removed diff --git a/mail/mail-account-editor.c b/mail/mail-account-editor.c index 751c95519b..feb7384bcb 100644 --- a/mail/mail-account-editor.c +++ b/mail/mail-account-editor.c @@ -168,7 +168,7 @@ mail_account_editor_new (MailConfigAccount *account, GtkWindow *parent, MailAcco MailAccountEditor *new; new = (MailAccountEditor *) g_object_new(mail_account_editor_get_type (), NULL); - gtk_widget_set_parent_window ((GtkWidget *) new, ((GtkWidget *)parent)->window); + gtk_window_set_transient_for ((GtkWindow *) new, parent); construct (new, account, dialog); return new; diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c index 7b2578c1b8..7183bcf017 100644 --- a/mail/mail-callbacks.c +++ b/mail/mail-callbacks.c @@ -397,7 +397,6 @@ composer_send_queued_cb (CamelFolder *folder, CamelMimeMessage *msg, CamelMessag e_msg_composer_set_enable_autosave (send->composer, TRUE); gtk_widget_show (GTK_WIDGET (send->composer)); - g_object_unref (send->composer); } camel_message_info_free (info); diff --git a/mail/mail-display.c b/mail/mail-display.c index 559a3c92dc..d5c7a6b0fd 100644 --- a/mail/mail-display.c +++ b/mail/mail-display.c @@ -1917,7 +1917,7 @@ mail_display_load_images (MailDisplay *md) *----------------------------------------------------------------------*/ static void -mail_display_init (GtkObject *object) +mail_display_init (GObject *object) { MailDisplay *mail_display = MAIL_DISPLAY (object); @@ -1934,6 +1934,8 @@ mail_display_init (GtkObject *object) mail_display->data = NULL; mail_display->invisible = gtk_invisible_new (); + g_object_ref(mail_display->invisible); + gtk_object_sink((GtkObject *)mail_display->invisible); mail_display->display_style = mail_config_get_message_display_style (); @@ -1952,33 +1954,43 @@ mail_display_destroy (GtkObject *object) if (mail_display->html) { g_object_unref(mail_display->html); mail_display->html = NULL; + } - if (mail_display->current_message) { - camel_object_unref (mail_display->current_message); - g_datalist_clear (mail_display->data); - fetch_cancel(mail_display); - } + if (mail_display->current_message) { + camel_object_unref (mail_display->current_message); + g_datalist_clear (mail_display->data); + fetch_cancel(mail_display); + mail_display->current_message = NULL; + } - g_free (mail_display->charset); - g_free (mail_display->selection); + g_free (mail_display->charset); + mail_display->charset = NULL; + g_free (mail_display->selection); + mail_display->selection = NULL; + + if (mail_display->folder) { + if (mail_display->info) + camel_folder_free_message_info (mail_display->folder, mail_display->info); + camel_object_unref (mail_display->folder); + mail_display->folder = NULL; + } - if (mail_display->folder) { - if (mail_display->info) - camel_folder_free_message_info (mail_display->folder, mail_display->info); - camel_object_unref (mail_display->folder); - } + g_free (mail_display->data); + mail_display->data = NULL; - g_free (mail_display->data); - mail_display->data = NULL; - - if (mail_display->idle_id) - gtk_timeout_remove (mail_display->idle_id); - - g_object_unref (mail_display->invisible); + if (mail_display->idle_id) { + gtk_timeout_remove (mail_display->idle_id); + mail_display->idle_id = 0; + } - g_free(mail_display->priv); + if (mail_display->invisible) { + g_object_unref (mail_display->invisible); + mail_display->invisible = NULL; } + g_free(mail_display->priv); + mail_display->priv = NULL; + mail_display_parent_class->destroy (object); } diff --git a/mail/message-browser.c b/mail/message-browser.c index 592d436e35..7ecdbdd997 100644 --- a/mail/message-browser.c +++ b/mail/message-browser.c @@ -61,23 +61,26 @@ static GtkAllocation last_allocation = { 0, 0 }; static BonoboWindowClass *message_browser_parent_class; static void -message_browser_finalise (GObject *object) +message_browser_destroy (GtkObject *object) { MessageBrowser *message_browser; message_browser = MESSAGE_BROWSER (object); - g_signal_handlers_disconnect_matched(message_browser->fb, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, message_browser); - g_object_unref((message_browser->fb)); + if (message_browser->fb) { + g_signal_handlers_disconnect_matched(message_browser->fb, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, message_browser); + g_object_unref((message_browser->fb)); + message_browser->fb = NULL; + } - if (G_OBJECT_CLASS (message_browser_parent_class)->finalize) - (G_OBJECT_CLASS (message_browser_parent_class)->finalize) (object); + if (GTK_OBJECT_CLASS (message_browser_parent_class)->destroy) + (GTK_OBJECT_CLASS (message_browser_parent_class)->destroy) (object); } static void message_browser_class_init (GObjectClass *object_class) { - object_class->finalize = message_browser_finalise; + ((GtkObjectClass *)object_class)->destroy = message_browser_destroy; message_browser_parent_class = g_type_class_ref(PARENT_TYPE); } diff --git a/mail/message-list.c b/mail/message-list.c index 810253bd4e..24139fa9c1 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -1260,6 +1260,19 @@ normalised_free (gpointer key, gpointer value, gpointer user_data) e_poolv_destroy (value); } +static void +message_list_dispose(GObject *object) +{ + MessageList *message_list = MESSAGE_LIST (object); + + if (message_list->folder) { + save_tree_state(message_list); + hide_save_state(message_list); + } + + G_OBJECT_CLASS (message_list_parent_class)->dispose(object); +} + static void message_list_finalise (GObject *object) { @@ -1271,9 +1284,6 @@ message_list_finalise (GObject *object) g_hash_table_destroy (message_list->normalised_hash); if (message_list->folder) { - save_tree_state(message_list); - hide_save_state(message_list); - camel_object_unhook_event(message_list->folder, "folder_changed", folder_changed, message_list); camel_object_unhook_event(message_list->folder, "message_changed", message_changed, message_list); camel_object_unref (message_list->folder); @@ -1321,6 +1331,7 @@ message_list_class_init (GObjectClass *object_class) message_list_parent_class = g_type_class_ref(PARENT_TYPE); object_class->finalize = message_list_finalise; + object_class->dispose = message_list_dispose; message_list_signals[MESSAGE_SELECTED] = g_signal_new ("message_selected", -- cgit v1.2.3