35 lines
1.1 KiB
Diff
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
|
||
|
|