Go to file
Florian Müllner 9a273e1db2 shell/app: Handle workspace from startup notifications
Launching applications on a particular workspace works through
launch contexts and startup notifications. While this is no
longer required by a launcher/WM split, in theory this allows
us to reliably identify the correct window to apply startup
properties to.

However in practice we fail more often than not: Missing support in
toolkits, differences between display protocols, D-Bus activation
and single-instance applications all provide their own pitfalls.

So instead, take advantage of the fact that launcher and WM live in
the same process, and go with the unsophisticated approach: Just
remember the last workspace that was requested when launching an
app, then move the next window that is associated with the app to
that workspace.

This will break X11 applications that set an initial workspace, but
that's legacy functionality anyway (given that there's no wayland
protocol for that functionality), and seems a price worth paying
for making launching apps on workspaces more reliable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1316>
2021-03-02 23:18:58 +01:00
.gitlab/issue_templates gitlab: Add issue templates 2020-01-07 22:42:46 +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 appDisplay: Adapt to available extra space showing icon grids 2021-03-02 22:02:56 +00:00
docs/reference docs: Unify on single DocBook version 2020-10-13 03:02:13 +02:00
js appDisplay: Don't reset adjustment on ::pages-changed 2021-03-02 22:02:56 +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 German translation 2021-03-02 19:49:29 +00:00
src shell/app: Handle workspace from startup notifications 2021-03-02 23:18:58 +01: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 extensions-app: Use development profile for nightly build 2021-02-11 17:47:27 +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 Changed obsolete FSF postal address. 2014-01-08 04:35:14 +07:00
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 README.md: Add contribution section 2019-02-13 20:37:39 +01: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.

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.