Go to file
Georges Basile Stavracas Neto bf1fa3879f workspacesView: Interpolate against relative workspace boxes
The overview transition consists of getting the initial and final
states of the overview adjustment, derivating various other internal
states from them (such as the fit mode, opacities, translations, etc),
and finally interpolating the allocation boxes.

When interpolating between the fit mode, WorkspacesView uses the current
allocation box to derivate the SINGLE and ALL fit mode boxes. However,
that creates a curved path during overview transitions. What we really
want to do here is calculate the fit mode box relative to the corresponding
overview state. For example:

 +----------------+----------+------------------------+
 | Overview State | Fit Mode | Workspaces geometry    |
 +----------------+----------+------------------------+
 | HIDDEN         | SINGLE   | Cover entire screen    |
 | WINDOW PICKER  | SINGLE   | Between minimap & Dash |
 | APP GRID       | ALL      | 15% screen height      |
 +----------------+----------+------------------------+

Using the table above as the reference, when the overview transitions
between WINDOW PICKER and APP GRID, we must interpolate between
(SINGLE fit mode @ between minimap & Dash) and (ALL fit mode @ 15% screen
height). That way, we always interpolate the final boxes, which corrects
the odd path that workspaces follow during this transition.

Make the WorkspacesView of the primary monitor use these cached boxes
when the overview is in the middle of a transition, and the fit modes of
the initial and final state differ, to calculate the workspaces positions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1624>
2021-02-11 15:50:31 +00:00
.gitlab/issue_templates gitlab: Add issue templates 2020-01-07 22:42:46 +00:00
.gitlab-ci ci: Add some more commit message rules 2021-01-11 14:01:44 +01:00
.settings Clean out some eclipse artefacts 2019-02-13 04:39:26 +01:00
data theme: Adjust app grid visuals 2021-02-11 15:50:31 +00:00
docs/reference docs: Unify on single DocBook version 2020-10-13 03:02:13 +02:00
js workspacesView: Interpolate against relative workspace boxes 2021-02-11 15:50:31 +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 Portuguese translation 2021-02-10 19:04:34 +00:00
src st: Test for :insensitive styling 2021-02-08 15:41:08 +01:00
subprojects extensions-app: Add description tooltip to rows 2021-02-11 11:20:30 +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: Bump mutter image 2021-02-08 15:21:17 +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 (again) 2021-01-18 17:46:04 +01:00
NEWS Tag release 40.alpha.1.1 2021-01-18 17:41:04 +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.