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
b592ded80a, but files moved.
This commit is contained in:
Jehan 2020-06-29 22:12:53 +02:00
parent 520c2116a3
commit 7ccf32db57

View File

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