From dce3aa5c015ecd2ab3c151a5322b81849bcdd3f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 2 Jun 2021 16:24:25 +0200 Subject: [PATCH] clutter/actor: Don't emit focus signals during destruction We rightfully unset the stage focus when the focus actor is destroyed, which in turns results in the ClutterActor::-key-focus-out signal being emitted on an actor that is no longer fully valid. Avoid that emission, so consumers don't have to deal with half-disposed actors in their handler. https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4324 Part-of: --- clutter/clutter/clutter-actor.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c index ce0c5ed32..989e479a8 100644 --- a/clutter/clutter/clutter-actor.c +++ b/clutter/clutter/clutter-actor.c @@ -14584,6 +14584,9 @@ _clutter_actor_set_has_key_focus (ClutterActor *self, { priv->has_key_focus = has_key_focus; + if (CLUTTER_ACTOR_IN_DESTRUCTION (self)) + return; + if (has_key_focus) g_signal_emit (self, actor_signals[KEY_FOCUS_IN], 0); else