3b3733ec3d
Resolves: #1964386
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
|
|
|