aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-search.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/mail-search.c')
-rw-r--r--mail/mail-search.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/mail/mail-search.c b/mail/mail-search.c
index e79be29121..4e79cf2fd1 100644
--- a/mail/mail-search.c
+++ b/mail/mail-search.c
@@ -47,6 +47,7 @@ mail_search_finalise (GObject *obj)
MailSearch *ms = MAIL_SEARCH (obj);
g_free (ms->last_search);
+ g_object_weak_unref ((GObject *) ms->mail, (GWeakNotify) gtk_widget_destroy, ms);
g_object_unref (ms->mail);
G_OBJECT_CLASS (parent_class)->finalize (obj);
@@ -57,11 +58,13 @@ mail_search_destroy (GtkObject *obj)
{
MailSearch *ms = (MailSearch *) obj;
ESearchingTokenizer *st = mail_search_tokenizer (ms);
-
+
if (ms->begin_handler) {
- g_signal_handler_disconnect(ms->mail->html->engine->ht, ms->match_handler);
- g_signal_handler_disconnect(ms->mail->html->engine->ht, ms->begin_handler);
+ g_signal_handler_disconnect (ms->mail->html->engine->ht, ms->begin_handler);
ms->begin_handler = 0;
+ g_signal_handler_disconnect (ms->mail->html->engine->ht, ms->match_handler);
+ ms->match_handler = 0;
+
e_searching_tokenizer_set_primary_search_string (st, NULL);
mail_search_redisplay_message (ms);
}