Fix crash after launching apps via drag-and-drop
This commit is contained in:
parent
6466e4bf0f
commit
8c14eae2c1
@ -0,0 +1,58 @@
|
||||
From f9f936e71a35dd9a383ba26763cf69c696d08ed4 Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Keller <skeller@gnome.org>
|
||||
Date: Sun, 7 Mar 2021 16:57:44 +0100
|
||||
Subject: [PATCH] shell/app: Avoid adding windows with a startup workspace
|
||||
twice
|
||||
|
||||
Changing the workspace of a window causes the window tracker to remove
|
||||
and add it to the app again. If this happens from within
|
||||
_shell_app_add_window() before the window has been added to the windows
|
||||
list, this will cause the check that is supposed to prevent adding the
|
||||
same window multiple times to fail and the window to be added twice.
|
||||
The app will then be considered still running after the last window has
|
||||
been closed. Then when clicking on the corresponding app icon, the shell
|
||||
would attempt to switch to a NULL workspace for the closed window
|
||||
instead of starting a new instance, resulting in a crash.
|
||||
|
||||
Changing the workspace also needs to happen after increasing the
|
||||
interesting window count, because otherwise removal of the window by
|
||||
the window tracker would trigger a uint underflow leading the app to be
|
||||
considered running with UINT_MAX interesting windows, despite having no
|
||||
windows, leading to crashes right after launching the app.
|
||||
|
||||
Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3833
|
||||
|
||||
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1745>
|
||||
---
|
||||
src/shell-app.c | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/shell-app.c b/src/shell-app.c
|
||||
index 7d7b5510d..17b179cba 100644
|
||||
--- a/src/shell-app.c
|
||||
+++ b/src/shell-app.c
|
||||
@@ -1081,10 +1081,6 @@ _shell_app_add_window (ShellApp *app,
|
||||
if (!app->running_state)
|
||||
create_running_state (app);
|
||||
|
||||
- if (app->started_on_workspace >= 0)
|
||||
- meta_window_change_workspace_by_index (window, app->started_on_workspace, FALSE);
|
||||
- app->started_on_workspace = -1;
|
||||
-
|
||||
app->running_state->window_sort_stale = TRUE;
|
||||
app->running_state->windows = g_slist_prepend (app->running_state->windows, g_object_ref (window));
|
||||
g_signal_connect_object (window, "unmanaged", G_CALLBACK(shell_app_on_unmanaged), app, 0);
|
||||
@@ -1098,6 +1094,10 @@ _shell_app_add_window (ShellApp *app,
|
||||
app->running_state->interesting_windows++;
|
||||
shell_app_sync_running_state (app);
|
||||
|
||||
+ if (app->started_on_workspace >= 0)
|
||||
+ meta_window_change_workspace_by_index (window, app->started_on_workspace, FALSE);
|
||||
+ app->started_on_workspace = -1;
|
||||
+
|
||||
g_object_thaw_notify (G_OBJECT (app));
|
||||
|
||||
g_signal_emit (app, shell_app_signals[WINDOWS_CHANGED], 0);
|
||||
--
|
||||
2.30.1
|
||||
|
@ -1,6 +1,6 @@
|
||||
Name: gnome-shell
|
||||
Version: 40.0~beta
|
||||
Release: 2.20210304git7a57528bd%{?dist}
|
||||
Release: 3.20210304git7a57528bd%{?dist}
|
||||
Summary: Window management and application launching for GNOME
|
||||
|
||||
License: GPLv2+
|
||||
@ -11,6 +11,7 @@ Source0: http://download.gnome.org/sources/gnome-shell/40/%{name}-40.beta-79-g7a
|
||||
Patch1: gnome-shell-favourite-apps-firefox.patch
|
||||
# Undo post-release version bump for snapshot
|
||||
Patch2: 0001-build-Lower-mutter-requirement.patch
|
||||
Patch3: 0001-shell-app-Avoid-adding-windows-with-a-startup-worksp.patch
|
||||
|
||||
%define eds_version 3.33.1
|
||||
%define gnome_desktop_version 3.35.91
|
||||
@ -225,6 +226,9 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/evolution-calendar.de
|
||||
%{_mandir}/man1/gnome-shell.1*
|
||||
|
||||
%changelog
|
||||
* Mon Mar 08 2021 Florian Müllner <fmuellner@redhat.com> - 40.0~beta-3.20210304git40.7a57528bd
|
||||
- Fix crash after launching apps via drag-and-drop
|
||||
|
||||
* Thu Mar 04 2021 Florian Müllner <fmuellner@redhat.com> - 40.0~beta-2.20210304git40.7a57528bd
|
||||
- Build snapshot of current upstream
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user