modules: 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.
This commit is contained in:
Jehan 2020-06-28 16:52:33 +02:00
parent ab4b85f88c
commit b592ded80a

View File

@ -113,6 +113,8 @@ static const GtkIMContextInfo *info_list[] =
&imwayland_info,
};
static void gtk_im_context_wayland_focus_out (GtkIMContext *context);
#define GTK_IM_CONTEXT_WAYLAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), type_wayland, GtkIMContextWayland))
#ifndef INCLUDE_IM_wayland
@ -469,6 +471,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->window);
g_clear_object (&context->gesture);
g_free (context->surrounding.text);