gnome-shell/js/ui
Georges Basile Stavracas Neto ca503774b2 panel: Add workspaces indicators in activities button
After removing the app name and icon, the next natural step that
was requested from the design team is to add workspaces indicators
to the top bar, where currently the Activities button is placed.

In addition to that, this is desired because there are known issues
with using "Activities" as a label for the overview. A more
comprehensive rationale for that can be found at [1].

Add an workspaces indicator replacing the Activities label in the
activities button.

The WorkspaceIndicators class controls how many workspaces dots
exists, their expansion, and the width multiplier. The WorkspaceDot
class takes the expansion and the multiplier, and applies it
internally so that we can get perfectly rounded dots at all
times without using CSS hacks.

The width multipliers are hardcoded, and defined by the design
team. We can revisit them later if necessary. Special care is
taken to not let these width multipliers result in fractional
widths.

When the number of workspaces changes, WorkspaceIndicators adds
new dot to the end, and animate them. When removing, scale the dot
out, then destroy it.

This does not work with workspace grids, but that's not supported
by GNOME Shell anyway, so no effort is made to cover this use case.

The button continues to have "Activities" as its accessible name,
but the label actor is removed.

Also adjust the padding of the activities pill, so it better wraps
the new indicators.

[1] https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/227

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2902>
2023-08-19 15:54:04 +00:00
..
components cleanup: Fixup wrong JSDoc comments 2023-08-09 15:10:38 +00:00
status status/backgroundApps: Close after activating app 2023-08-11 10:27:49 +00:00
accessDialog.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
altTab.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
animation.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
appDisplay.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
appFavorites.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
appMenu.js cleanup: Remove spaces in object literals 2023-08-09 15:10:37 +00:00
audioDeviceSelection.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
background.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
backgroundMenu.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
barLevel.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
boxpointer.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
calendar.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
checkBox.js cleanup: Remove spaces in object literals 2023-08-09 15:10:37 +00:00
closeDialog.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
components.js js: Port to modules 2023-08-06 13:02:49 +02:00
ctrlAltTab.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
dash.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
dateMenu.js js: Port to modules 2023-08-06 13:02:49 +02:00
dialog.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
dnd.js cleanup: Fixup wrong JSDoc comments 2023-08-09 15:10:38 +00:00
edgeDragAction.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
endSessionDialog.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
environment.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
extensionDownloader.js js: Port Config to ESM 2023-08-10 17:42:23 +00:00
extensionSystem.js js: Port Config to ESM 2023-08-10 17:42:23 +00:00
focusCaretTracker.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
grabHelper.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
ibusCandidatePopup.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
iconGrid.js cleanup: Remove spaces in object literals 2023-08-09 15:10:37 +00:00
inhibitShortcutsDialog.js js: Port to modules 2023-08-06 13:02:49 +02:00
init.js init: Include the error stack in the context termination error message 2023-08-18 00:31:10 +00:00
kbdA11yDialog.js cleanup: Use consistent 4-space indent 2023-08-09 15:10:37 +00:00
keyboard.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
layout.js layout: Export PressureBarrier 2023-08-18 03:47:51 +00:00
lightbox.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
listModes.js listModes: Port listModes command to ES module 2023-08-05 22:16:23 +02:00
locatePointer.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
lookingGlass.js lookingGlass: Export the Inspector class 2023-08-17 19:32:42 +02:00
magnifier.js cleanup: Fixup wrong JSDoc comments 2023-08-09 15:10:38 +00:00
main.js main: Introduce global workspaces adjustment 2023-08-11 16:51:13 +00:00
messageList.js messageList: Allow dismissal via backspace 2023-08-16 14:04:47 +02:00
messageTray.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
modalDialog.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
mpris.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
notificationDaemon.js js: Port Config to ESM 2023-08-10 17:42:23 +00:00
osdMonitorLabeler.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
osdWindow.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
overview.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
overviewControls.js overviewControls: Use new workspaces adjustment API 2023-08-11 16:51:13 +00:00
padOsd.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
pageIndicators.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
panel.js panel: Add workspaces indicators in activities button 2023-08-19 15:54:04 +00:00
panelMenu.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
pointerA11yTimeout.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
pointerWatcher.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
popupMenu.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
quickSettings.js js: Port to modules 2023-08-06 13:02:49 +02:00
remoteSearch.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
ripples.js js: Port to modules 2023-08-06 13:02:49 +02:00
runDialog.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
screenShield.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
screenshot.js screenshot: Export showScreen*UI() functions 2023-08-09 15:22:55 +00:00
scripting.js js: Port Config to ESM 2023-08-10 17:42:23 +00:00
search.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
searchController.js cleanup: Remove spaces in object literals 2023-08-09 15:10:37 +00:00
sessionMode.js js: Port Config to ESM 2023-08-10 17:42:23 +00:00
shellDBus.js js: Port Config to ESM 2023-08-10 17:42:23 +00:00
shellEntry.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
shellMountOperation.js cleanup: Fixup wrong JSDoc comments 2023-08-09 15:10:38 +00:00
slider.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
swipeTracker.js cleanup: Fixup wrong JSDoc comments 2023-08-09 15:10:38 +00:00
switcherPopup.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
switchMonitor.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
unlockDialog.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
userWidget.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
welcomeDialog.js js: Port Config to ESM 2023-08-10 17:42:23 +00:00
windowAttentionHandler.js cleanup: Always use single quotes 2023-08-09 15:10:37 +00:00
windowManager.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
windowMenu.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
windowPreview.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
workspace.js cleanup: Fixup wrong JSDoc comments 2023-08-09 15:10:38 +00:00
workspaceAnimation.js workspaceAnimation: Sync progress with main adjustment 2023-08-11 16:51:13 +00:00
workspacesView.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
workspaceSwitcherPopup.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00
workspaceThumbnail.js cleanup: Fixup wrong JSDoc comments 2023-08-09 15:10:38 +00:00
xdndHandler.js cleanup: Use type-safe comparisons 2023-08-09 15:10:38 +00:00