[balsa] Do not crash on "select-part" signal
- From: Peter Bloomfield <PeterB src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [balsa] Do not crash on "select-part" signal
- Date: Sat, 23 Jan 2010 18:03:46 +0000 (UTC)
commit b0456aba1a112d59c2d1b14a55376becdf80246f
Author: Peter Bloomfield <PeterBloomfield bellsouth net>
Date: Sat Jan 23 13:03:06 2010 -0500
Do not crash on "select-part" signal
* src/message-window.c (destroy_message_window),
(mw_select_part_cb): do not crash on "select-part" signal.
ChangeLog | 5 +++++
src/message-window.c | 22 +++++++++++++++-------
2 files changed, 20 insertions(+), 7 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 33700ad..b6db36c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2010-01-23 Peter Bloomfield
+ * src/message-window.c (destroy_message_window),
+ (mw_select_part_cb): do not crash on "select-part" signal.
+
+2010-01-23 Peter Bloomfield
+
* src/balsa-message.c (balsa_message_set): clear tree before
selecting part;
(select_part): emit signal also for NULL part;
diff --git a/src/message-window.c b/src/message-window.c
index b661a10..37b53d9 100644
--- a/src/message-window.c
+++ b/src/message-window.c
@@ -673,6 +673,11 @@ destroy_message_window(GtkWidget * widget, MessageWindow * mw)
G_SIGNAL_MATCH_DATA, 0, 0,
NULL, NULL, mw);
+ if (mw->bmessage)
+ g_signal_handlers_disconnect_matched(G_OBJECT(mw->bmessage),
+ G_SIGNAL_MATCH_DATA, 0, 0,
+ NULL, NULL, mw);
+
mw_set_message(mw, NULL);
g_free(mw);
@@ -1039,12 +1044,15 @@ mw_select_part_cb(BalsaMessage * bm, MessageWindow * mw)
#endif /* HAVE_GTKHTML */
/* set window title */
- from =
- internet_address_list_to_string(bm->message->headers->from, FALSE);
- title = g_strdup_printf(_("Message from %s: %s"), from,
- LIBBALSA_MESSAGE_GET_SUBJECT(bm->message));
- g_free(from);
- gtk_window_set_title(GTK_WINDOW(mw->window), title);
- g_free(title);
+ if (bm && bm->message) {
+ from = internet_address_list_to_string(bm->message->headers->from,
+ FALSE);
+ title = g_strdup_printf(_("Message from %s: %s"), from,
+ LIBBALSA_MESSAGE_GET_SUBJECT(bm->message));
+ g_free(from);
+ gtk_window_set_title(GTK_WINDOW(mw->window), title);
+ g_free(title);
+ }
+
mw_set_part_buttons_sensitive(mw, bm);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]