talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit 12d02a4874418d38940c466dda98729ecff6674c
parent 0a14bf4b7f4d9b32ca05a003f646070ca05f4674
Author: Colin Leroy <colin@colino.net>
Date:   Wed, 17 Oct 2018 09:26:26 +0200

Fix crash in dangling message search.

Diffstat:
Msrc/compose.c | 1+
Msrc/message_search.c | 11+++++++++++
Msrc/message_search.h | 1+
Msrc/messageview.c | 2++
4 files changed, 15 insertions(+), 0 deletions(-)

diff --git a/src/compose.c b/src/compose.c @@ -9182,6 +9182,7 @@ static void compose_destroy(Compose *compose) clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY); gtk_text_buffer_remove_selection_clipboard(buffer, clipboard); + message_search_close(compose); gtk_widget_destroy(compose->window); toolbar_destroy(compose->toolbar); g_free(compose->toolbar); diff --git a/src/message_search.c b/src/message_search.c @@ -122,6 +122,17 @@ void message_search_compose(Compose *compose) message_search_other(&compose_interface, (void *)compose); } +void message_search_close (void *obj) +{ + if(!search_window.window) { + return; + } + if (search_window.interface_obj == obj) { + gtk_widget_hide(search_window.window); + search_window.interface_obj = NULL; + } +} + void message_search_other(SearchInterface *interface, void *obj) { if (!search_window.window) diff --git a/src/message_search.h b/src/message_search.h @@ -38,5 +38,6 @@ typedef struct { void message_search (MessageView *messageview); void message_search_compose (Compose *compose); void message_search_other (SearchInterface *source, void *obj); +void message_search_close (void *obj); #endif /* __MESSAGE_SEARCH_H__ */ diff --git a/src/messageview.c b/src/messageview.c @@ -1638,6 +1638,8 @@ void messageview_destroy(MessageView *messageview) g_free(messageview->toolbar); } + message_search_close(messageview); + list_free_strings_full(messageview->trail); msgview_list = g_list_remove(msgview_list, messageview);