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:
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);