[gtk] entry: Disconnect text signals in dispose
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk] entry: Disconnect text signals in dispose
- Date: Thu, 21 Mar 2019 23:16:25 +0000 (UTC)
commit 56df49971ad9fe74b02f8251c6805c10626f7cdf
Author: Matthias Clasen <mclasen redhat com>
Date: Thu Mar 21 19:15:24 2019 -0400
entry: Disconnect text signals in dispose
This was showing up as crashes when closing
the file chooser.
gtk/gtkentry.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
---
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index 499fbe9a84..eafc963790 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -1254,6 +1254,15 @@ connect_text_signals (GtkEntry *entry)
g_signal_connect (priv->text, "notify", G_CALLBACK (notify_cb), entry);
}
+static void
+disconnect_text_signals (GtkEntry *entry)
+{
+ GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry);
+
+ g_signal_handlers_disconnect_by_func (priv->text, activate_cb, entry);
+ g_signal_handlers_disconnect_by_func (priv->text, notify_cb, entry);
+}
+
static void
gtk_entry_init (GtkEntry *entry)
{
@@ -1278,7 +1287,10 @@ gtk_entry_dispose (GObject *object)
gtk_entry_set_completion (entry, NULL);
if (priv->text)
- gtk_editable_finish_delegate (GTK_EDITABLE (entry));
+ {
+ disconnect_text_signals (entry);
+ gtk_editable_finish_delegate (GTK_EDITABLE (entry));
+ }
g_clear_pointer (&priv->text, gtk_widget_unparent);
gtk_entry_set_icon_from_paintable (entry, GTK_ENTRY_ICON_PRIMARY, NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]