mutter/0001-clutter-actor-Don-t-em...

35 lines
1.1 KiB
Diff

From 47d16c100d481393f1be511b661b12ba4e81a5b2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
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
---
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
--
2.31.1