gnome-shell/js
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
..
dbusServices dbusServices/screencast: Use GTK4 2021-01-25 21:09:22 +01:00
gdm loginDialog: Fill UserListItem layout to show the timed login indicator 2021-02-09 06:08:55 +00:00
misc util: Add a GNOME version comparison function 2021-02-05 13:41:26 +00:00
perf perf: Add basic run tests 2020-08-12 15:43:39 +00:00
portalHelper js: Don't use templates in files with translations 2020-02-17 23:20:40 +01:00
ui workspacesView: Interpolate against relative workspace boxes 2021-02-11 15:50:31 +00:00
js-resources.gresource.xml fingerprint: Use makeProxyWrapper for fprintManager 2021-02-08 19:19:14 +00:00
meson.build extensions-app: Move Extensions app to new subproject 2020-03-27 23:33:30 +00:00
portal-resources.gresource.xml js: Remove unused files from resources 2020-03-09 13:18:48 +00:00