summaryrefslogtreecommitdiff
path: root/gtk/gtkimcontextwayland.c
diff options
context:
space:
mode:
authorJehan <jehan@girinstud.io>2020-06-29 22:12:53 +0200
committerJehan <jehan@girinstud.io>2020-06-29 22:17:08 +0200
commit7ccf32db5781db9e4a299b9936e562b50378bbf7 (patch)
tree84f99731806b47bb1ccf7348af72b4623f822bfa /gtk/gtkimcontextwayland.c
parent520c2116a3df847c1093722d87aa26806fd3568a (diff)
downloadgtk+-7ccf32db5781db9e4a299b9936e562b50378bbf7.tar.gz
gtk: focus out the GtkIMContextWayland upon finalization.
In particular, it will NULL-ified the current global context if this is the finalized one, avoiding dangling invalid pointers. Would have been a cherry-pick from branch gtk-3-24 of commit b592ded80ad4825d115317ba6750a086da0434c0, but files moved.
Diffstat (limited to 'gtk/gtkimcontextwayland.c')
-rw-r--r--gtk/gtkimcontextwayland.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gtk/gtkimcontextwayland.c b/gtk/gtkimcontextwayland.c
index 658e6e7f7b..f76f183fd2 100644
--- a/gtk/gtkimcontextwayland.c
+++ b/gtk/gtkimcontextwayland.c
@@ -93,6 +93,8 @@ struct _GtkIMContextWayland
guint use_preedit : 1;
};
+static void gtk_im_context_wayland_focus_out (GtkIMContext *context);
+
G_DEFINE_TYPE_WITH_CODE (GtkIMContextWayland, gtk_im_context_wayland, GTK_TYPE_IM_CONTEXT_SIMPLE,
gtk_im_module_ensure_extension_point ();
g_io_extension_point_implement (GTK_IM_MODULE_EXTENSION_POINT_NAME,
@@ -476,6 +478,8 @@ gtk_im_context_wayland_finalize (GObject *object)
{
GtkIMContextWayland *context = GTK_IM_CONTEXT_WAYLAND (object);
+ gtk_im_context_wayland_focus_out (GTK_IM_CONTEXT (context));
+
g_clear_object (&context->widget);
g_clear_object (&context->gesture);
g_free (context->surrounding.text);