Don't emit ::key-focus-out on destroyed actors

Resolves: #1964386
This commit is contained in:
Florian Müllner 2021-06-02 17:08:02 +02:00
parent 7ccbc9022c
commit 3b3733ec3d
2 changed files with 42 additions and 1 deletions

View File

@ -0,0 +1,34 @@
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

View File

@ -10,7 +10,7 @@
Name: mutter
Version: 40.1
Release: 1%{?dist}
Release: 2%{?dist}
Summary: Window and compositing manager based on Clutter
License: GPLv2+
@ -26,6 +26,9 @@ Patch1: 0001-Revert-build-Do-not-provide-built-sources-as-libmutt.patch
# Workaround for RHBZ#1936991 (blocks atomic KMS on "tegra" driver)
Patch2: 0001-Test-deny-atomic-KMS-for-tegra-RHBZ-1936991.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1964386
Patch3: 0001-clutter-actor-Don-t-emit-focus-signals-during-destru.patch
BuildRequires: chrpath
BuildRequires: pango-devel
BuildRequires: startup-notification-devel
@ -168,6 +171,10 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
%{_datadir}/mutter-%{mutter_api_version}/tests
%changelog
* Wed Jun 02 2021 Florian Müllner <fmuellner@redhat.com> - 40.1-2
- Don't emit ::key-focus-out on destroyed actors
Resolves: #1964386
* Thu May 14 2021 Florian Müllner <fmuellner@redhat.com> - 40.1-1
- Update to 40.1
Resolves: #1951146