From 9261cabfbbfd1e391ae73672dc027fec9cbdd77c Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Mon, 24 Sep 2018 19:34:18 +0200 Subject: [PATCH] Bug 787439 - Segmentation Fault in Transfer dialog after clearing Date field and pressing escape Disconnect date edit's focus-out callback before destroying the transfer dialog widget. This should prevent the callback being triggered while the widget's internal state is being destroyed. --- gnucash/gnome-utils/dialog-transfer.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/gnucash/gnome-utils/dialog-transfer.c b/gnucash/gnome-utils/dialog-transfer.c index 79dcad905b..5971ddbbf4 100644 --- a/gnucash/gnome-utils/dialog-transfer.c +++ b/gnucash/gnome-utils/dialog-transfer.c @@ -1686,6 +1686,13 @@ gnc_xfer_dialog_response_cb (GtkDialog *dialog, gint response, gpointer data) return; } + /* We're closing, either by cancel, esc or ok + * Remove date changed handler to prevent it from triggering + * on a focus-out event while we're already destroying the widget */ + g_signal_handlers_disconnect_by_func (G_OBJECT (xferData->date_entry), + G_CALLBACK (gnc_xfer_date_changed_cb), + xferData); + if (response != GTK_RESPONSE_OK) { gnc_close_gui_component_by_data (DIALOG_TRANSFER_CM_CLASS, xferData);