Go to file
Sebastian Keller f9f936e71a 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>
2021-03-07 16:23:08 +00:00
.gitlab/issue_templates Add a link to supported releases in the README and bug template 2021-03-03 14:47:20 +00:00
.gitlab-ci ci: Add commit rule to not end subject with punctuation 2021-02-26 14:59:07 +01:00
.settings Clean out some eclipse artefacts 2019-02-13 04:39:26 +01:00
data theme/screen-shield: Use the same background color as in the overview 2021-03-04 11:33:03 +00:00
docs/reference docs: Unify on single DocBook version 2020-10-13 03:02:13 +02:00
js workspaceThumbnail: Update visibility when showing the overview 2021-03-04 12:39:37 +00:00
lint lint: Sync configuration with gjs 2020-11-16 18:04:23 +00:00
man man: Update options 2020-12-28 02:25:17 +01:00
meson theme: Pre-generate stylesheets as well 2020-12-29 00:40:47 +01:00
po Update Polish translation 2021-03-07 13:41:35 +01:00
src shell/app: Avoid adding windows with a startup workspace twice 2021-03-07 16:23:08 +00:00
subprojects extension-tool/create: Update for new versioning scheme 2021-02-26 23:06:43 +01:00
tests util: Add a GNOME version comparison function 2021-02-05 13:41:26 +00:00
tools *: Fix spelling mistakes found by codespell 2020-08-21 18:25:09 +00:00
.eslintrc.yml lint: Convert eslint JSON to YAML 2019-11-11 23:51:17 +00:00
.gitignore Add small gnome-shell-extension-prefs script 2020-04-28 00:06:19 +02:00
.gitlab-ci.yml ci: Update ci-fairy image 2021-03-03 20:29:22 +01:00
.gitmodules submodules: Replace non-functional git.gnome.org URL by GNOME Gitlab URL 2018-09-25 08:41:30 +02:00
config.h.meson Add check_cloexec_fds debug command 2018-07-30 23:11:41 +00:00
COPYING
gnome-shell.doap gnome-shell.doap: Make marge-bot a maintainer 2020-11-17 17:29:56 +00:00
HACKING.md *: Fix spelling mistakes found by codespell 2020-08-21 18:25:09 +00:00
meson_options.txt extensions-app: Move Extensions app to new subproject 2020-03-27 23:33:30 +00:00
meson.build Post-release version bump 2021-02-23 00:22:58 +01:00
NEWS Tag 40.beta 2021-02-23 00:09:33 +01:00
README.md Add a link to supported releases in the README and bug template 2021-03-03 14:47:20 +00:00

GNOME Shell

GNOME Shell provides core user interface functions for the GNOME 3 desktop, like switching to windows and launching applications. GNOME Shell takes advantage of the capabilities of modern graphics hardware and introduces innovative user interface concepts to provide a visually attractive and easy to use experience.

For more information about GNOME Shell, including instructions on how to build GNOME Shell from source and how to get involved with the project, see the project wiki.

Bugs should be reported to the GNOME bug tracking system. Please refer to the Schedule wiki page to see the supported versions.

Contributing

To contribute, open merge requests at https://gitlab.gnome.org/GNOME/gnome-shell.

Commit messages should follow the GNOME commit message guidelines. We require an URL to either an issue or a merge request in each commit.

License

GNOME Shell is distributed under the terms of the GNU General Public License, version 2 or later. See the COPYING file for details.