summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2019-03-21 22:14:03 -0400
committerMatthias Clasen <mclasen@redhat.com>2019-04-28 12:36:04 +0000
commit7cb44e7d40655204acf2d8e06ce21ed34f598484 (patch)
treeefcc336f5abad5385d46e1dcb361bcc93a36aeea
parent84b99bb83b297bea53f34b00946f1532b4643ce7 (diff)
downloadgtk+-7cb44e7d40655204acf2d8e06ce21ed34f598484.tar.gz
text: Adapt to new popover lifecycle
Unparent the popover in dispose.
-rw-r--r--gtk/gtktext.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/gtk/gtktext.c b/gtk/gtktext.c
index 143a310013..aba651b8fd 100644
--- a/gtk/gtktext.c
+++ b/gtk/gtktext.c
@@ -156,6 +156,7 @@ struct _GtkTextPrivate
char *im_module;
+ GtkWidget *emoji_completion;
GtkTextHandle *text_handle;
GtkWidget *selection_bubble;
guint selection_bubble_timeout_id;
@@ -1786,8 +1787,11 @@ gtk_text_dispose (GObject *object)
priv->buffer = NULL;
}
+ g_clear_pointer (&priv->emoji_completion, gtk_widget_unparent);
+
keymap = gdk_display_get_keymap (gtk_widget_get_display (GTK_WIDGET (object)));
g_signal_handlers_disconnect_by_func (keymap, keymap_direction_changed, self);
+
G_OBJECT_CLASS (gtk_text_parent_class)->dispose (object);
}
@@ -6629,10 +6633,9 @@ set_enable_emoji_completion (GtkText *self,
priv->enable_emoji_completion = value;
if (priv->enable_emoji_completion)
- g_object_set_data (G_OBJECT (self), "emoji-completion-popup",
- gtk_emoji_completion_new (self));
+ priv->emoji_completion = gtk_emoji_completion_new (self);
else
- g_object_set_data (G_OBJECT (self), "emoji-completion-popup", NULL);
+ g_clear_pointer (&priv->emoji_completion, gtk_widget_unparent);
g_object_notify_by_pspec (G_OBJECT (self), text_props[PROP_ENABLE_EMOJI_COMPLETION]);
}