[mutter] clutter/actor: Don't emit focus signals during destruction
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] clutter/actor: Don't emit focus signals during destruction
- Date: Thu, 3 Jun 2021 17:25:40 +0000 (UTC)
commit dce3aa5c015ecd2ab3c151a5322b81849bcdd3f1
Author: Florian Müllner <fmuellner gnome org>
Date: Wed Jun 2 16:24:25 2021 +0200
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: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1884>
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 ce0c5ed323..989e479a82 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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]