Commit Graph

8625 Commits

Author SHA1 Message Date
Carlos Garnacho
89db7bbb12 popupMenu: Avoid open state reentrancy in dummy menus
Dummy menus may emit ::open-state-changed multiple times for
the same state. Avoid doing that so that the PopupMenuManager
is happy not having to handle reentrancy.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5064
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2178>
2022-02-13 13:25:42 +00:00
Florian Müllner
f88222edd6 workspaceSwitcherPopup: Implement new OSD design
Move the popup to the bottom and represent workspaces as small dots
instead of as scaled down representations of the work area.

https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/152

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2127>
2022-02-12 15:28:52 +00:00
Florian Müllner
00ccea48a6 workspaceSwitcherPopup: Fix fading in
The popover is supposed to fade in, but that's currently
broken because:

 - we already start at full opacity
 - Clutter skips transitions while unmapped

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2127>
2022-02-12 15:28:52 +00:00
Florian Müllner
209d8c7f10 workspaceSwitcherPopup: Drop direction parameter
The original popup included arrows that indicated the direction of
the switch. We stopped doing that a long time ago, and ever since
the popup has only indicated active vs. non-active workspaces.

Simplify both the API and style to reflect that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2127>
2022-02-12 15:28:52 +00:00
Florian Müllner
3e8fd65045 osdWindow: Implement new OSD design
Switch to a horizontal layout, use smaller icons and move
the OSD to the bottom of the screen.

https://gitlab.gnome.org/Teams/Design/os-mockups/-/issues/152

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2127>
2022-02-12 15:28:52 +00:00
Florian Müllner
5135af0750 osdWindow: Don't inherit from St.Widget
We don't apply any styling to the toplevel OSD actor, so we can just
as well avoid the style machinery and use a plain actor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2127>
2022-02-12 15:28:52 +00:00
Ivan Molodetskikh
2949244d72 status/remote-access: Don't show recording icon for screenshot UI casts
If there's only a single recording and it is the screenshot UI
recording, don't show the icon, because it's already displayed by the
new panel.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2163>
2022-02-12 14:36:54 +00:00
Ivan Molodetskikh
144acb1d02 status/remote-access: Remove menu for stopping screencasts
It is now handled by a dedicated panel.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2163>
2022-02-12 14:36:54 +00:00
Ivan Molodetskikh
6ec8480052 panel: Add a screen recording indicator
The indicator shows the recording duration and lets the user stop it on
click. It is more discoverable than the stop entry in the aggregate
menu.

The class extends ButtonBox directly rather than Button because Button
does nothing that it uses, and actually causes issues with its dummy
menu (its vfunc_hide() throws an "open-state-changed: Error: incorrect
pop").

The menu-set signal declaration is required by the panel.

The screencast is stopped upon button press in vfunc_event(), which
matches PanelMenu.Button's input handling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2163>
2022-02-12 14:36:54 +00:00
Ivan Molodetskikh
33cf163f95 main: Move screenshotUI initialization earlier
A new screen recording panel indicator will connect to its signal, so it
needs to be initialized before the panel.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2163>
2022-02-12 14:36:54 +00:00
Alexander Mikhaylenko
348fcdaa77 background: Handle errors when loading wallpapers
Since it happens while setting up the startup animation, we will get stuck
inside that animation and block input if it fails.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5062

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2176>
2022-02-12 14:31:10 +00:00
Ivan Molodetskikh
1272ce37a7 Add new screenshot UI icons
To replace the applets-screenshooter one that was deprecated and isn't
even available on GNOME OS anymore.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2167>
2022-02-12 14:08:01 +00:00
Björn Daase
528ee01fef dateMenu: Replace ellipsis with full sentences
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2108>
2022-02-12 14:15:21 +01:00
Florian Müllner
a1dd1b25d8 js: Use templates for non-translatable strings
This reverts commit 9d941f8202 and replaces all additional
instances of .format() that have been added since.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2160>
2022-02-12 12:29:52 +00:00
Florian Müllner
29dfde5a4a js: Reindent some code
... to make sure it conforms to the non-legacy style
before touching it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2160>
2022-02-12 12:29:52 +00:00
Florian Müllner
615155f424 ibusManager: Fix version in log message
Whoops, we the log message complaints about minor.minor instead
of minor.micro.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2160>
2022-02-12 12:29:52 +00:00
Ivan Molodetskikh
a9fbee05b1 screenshot-ui: Add a key to open the screencast UI
It replaces the "record a short screencast" key from g-s-d.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2107>
2022-02-12 12:13:22 +00:00
Ivan Molodetskikh
b757f165a3 screenshot-ui: Add mode argument to open()
In a subsequent commit we will add a function to open the screenshot UI
in the screencast mode. This argument will allow us to do that without
resorting to accessing private fields from the outside.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2107>
2022-02-12 12:13:22 +00:00
Ivan Molodetskikh
6d3dd232ad screenshot: Connect shot/cast toggle with bind_property
This way we don't need to uncheck the other button manually, and it also
allows switching the mode by setting the other button's checked to
false, and not just by setting the target mode's button to true. An
example clean-up can be seen in the "V" key handler.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2107>
2022-02-12 12:13:22 +00:00
Ivan Molodetskikh
b0ebbb00b8 screenshot-ui: Add two key bindings from g-s-d
These two are moving into gnome-shell to unify screenshot handling and
allow for same-frame capturing.

While we're at it, move the keybindings .xml file from g-c-c here
because it belongs to gnome-shell.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2107>
2022-02-12 12:13:22 +00:00
Ivan Molodetskikh
414592acf9 screenshot-ui: Extract binding modes
We will re-use the same modes for more bindings in subsequent commits.
Also, while we're at it, invert the modes, to emphasize where the
screenshot UI cannot be used, rather than where it can be used.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2107>
2022-02-12 12:13:22 +00:00
Ivan Molodetskikh
84cfab2119 windowMenu: Add an entry to take a screenshot
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2105>
2022-02-12 00:20:54 +00:00
Ivan Molodetskikh
b2fd93f3da screenshot: Make captureScreenshot async
Now that it's split out and has no implicit arguments we can convert it
to be a proper async function.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2105>
2022-02-12 00:20:54 +00:00
Ivan Molodetskikh
907377ec40 screenshot-ui: Split out captureScreenshot()
It will be used for the window right-click menu and for handling keys
that are moving here from g-s-d.

Lockdown settings are also moving into the split _storeScreenshot() as
that is the only place where they are used.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2105>
2022-02-12 00:20:54 +00:00
Carlos Garnacho
c12f085530 ibusManager: Check existence of IBus systemd units before manual start
IBus is moving to being a systemd managed service in GNOME sessions
(see https://github.com/ibus/ibus/pull/2377). Since there will be a
transition period, and we still have to support non-systemd sessions,
check for this existence at runtime.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2171>
2022-02-11 23:51:24 +00:00
Sam Hewitt
4b56acb775 calendarMenu: Fix several visual issues with calendar and notifications
- drop card style from calendar
- remove focus ability from non-interactive calendar elements
- flesh out the styles for the calendar grid
- fix margin and padding issue with login screen calendar
- update no-notifications icon
- add padding to media player buttons
- catch a couple other minor style papercuts

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2161>
2022-02-11 23:23:05 +00:00
Florian Müllner
57b819ae2d calendar: Reindent code
We are about to touch some code that still uses the legacy indentation
style.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2161>
2022-02-11 23:23:05 +00:00
Alexander Mikhaylenko
de485c8f47 shellDBus: Add ScreenTransition()
Settings will use this when switching between light and dark styles.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2070>
2022-02-12 02:54:57 +05:00
Alexander Mikhaylenko
03e307f328 Revert "background: Mark pattern backgrounds as loaded"
This reverts commit fdac0602db.

The commit was fixing a crash, which cannot longer be reproduced, but also
introduced a noticeable white flash when switching wallpapers. This will
become even more noticeable when we try to uniformly transition the whole
screen.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2070>
2022-02-12 02:54:01 +05:00
Alexander Mikhaylenko
ad830fad1e network: Update Settings appid
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2175>
2022-02-11 17:33:34 +00:00
Alexander Mikhaylenko
07f28ceb39 shellDBus: Update Settings appid
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2175>
2022-02-11 17:33:34 +00:00
Florian Müllner
5442266f28 js: Simplify promisify() calls
If the finish function isn't specified, promisify will now try
to use the async name without '_async'/'_begin' suffix (if any)
and '_finish' appended.

Everything except IBus uses a variation of that pattern, so there's
quite a bit of boilerplate we get to remove…

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2174>
2022-02-11 16:24:01 +00:00
Florian Müllner
928f3288e9 js: Stop using Gio._LocalFilePrototype
gjs now supports overriding interface methods, so promisify()
works on Gio.File itself, not just the LocalFilePrototype cludge.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2174>
2022-02-11 16:24:01 +00:00
Razze
55a37ac992 Let users use the other mouse button to switch
As users can have different primary mouse buttons (left vs right) it
might happen, that a user with a different
preference wants to switch. Currently they need
to use the mouse button, that the current
user prefers.

This change enables users to use either the left or right button.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1972>
2022-02-11 12:33:25 +00:00
Florian Müllner
78c7d5ba0c status/location: Track enabled state
More fallout from commit e3a1d84992: We are tracking the agent's
:max-accuracy-level property that we don't use, but not :enabled.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5043

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2170>
2022-02-10 13:19:57 +00:00
Florian Müllner
5628849a40 status/location: Use correct enabled state
Commit e3a1d84992 split out the agent from the indicator, but kept
using a local 'enabled' property with no connection at all to the
actual state.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5043

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2170>
2022-02-10 13:19:57 +00:00
Florian Müllner
d7d484a8cd dbusServices: Allow to persist services via environment
Auto-shutdown prevents debugging a service with tools like
d-feet, so allow turning it off with an environment variable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2169>
2022-02-10 13:14:45 +00:00
Carlos Garnacho
c13d44439f popupMenu: Avoid intermediate focus changes on menu switch
Currently when switching from a popup menu to another in the same
manager, we first show the new menu, then hide the old menu and
remove its grab, then create a new grab for the just shown menu.

This briefly ungrabbed moment will still trigger keyboard focus
changes, that might have other visible effects. In order to fix
this, change the grabbing order so first the new grab is created
then the old one is dismissed. This ensures focus moves from the
old menu to the new menu without gaps in between.

Since a grab is tied to an active menu, but close/grab are now
slightly decoupled, also ensure closing a menu only tears down its
own grab. This is necessary for correct accounting while doing the
grab shuffling.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5039
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2166>
2022-02-09 16:44:08 +00:00
Florian Müllner
00e41383c7 dbusServices/screencast: Removed unused properties
Those have been superseded by corresponding state enums.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2165>
2022-02-09 13:00:04 +01:00
Bastien Nocera
0531fc54e5 status/bluetooth: Fix wedged state
Fix a state where toggling the main Bluetooth switch in the header will
always show the "Bluetooth Off" menu header with "Turn Off" as the only
option.

To reproduce, with Bluetooth enabled and working, run
"hciconfig hci0 down" as root, and check the status menu.

See gnome-bluetooth!102 and gnome-control-center!1148

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4857
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2055>
2022-02-08 23:16:46 +00:00
Bastien Nocera
4a480a78af status/bluetooth: Port to new GListModel API
The GtkTreeView API was removed, and replaced with a GListModel API.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4748
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2055>
2022-02-08 23:16:46 +00:00
Florian Müllner
e07bc62fbd dbusServices/extensions: Give extensions access to the prefs window
The current preference API - buildPrefsWidget() - predates client-side
decorations. While extension authors have been finding ways around
the limitation of not having access to the window/titlebar, the change
to the new Adwaita API seems like a good time for an updated API that
officially provides that access (as far as allowed by libadwaita).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2012>
2022-02-08 19:11:19 +00:00
Florian Müllner
285ebe020c dbusServices/extensions: Stop setting a default size
Adw.PreferencesWindow already sets an appropriate default.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2012>
2022-02-08 19:11:19 +00:00
Florian Müllner
cd9532c678 dbusServices/extensions: Use default style class
libadwaita provides a series of style classes as part of its API.
Use those instead of meddling manually with the font size.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2012>
2022-02-08 19:11:19 +00:00
Florian Müllner
7a8b636028 dbusServides/extensions: Use Adw.PreferencesWindow
Adapt the new GNOME platform API for the upcoming 42. This makes
sure that we get the latest version of the stylesheet, as well as
support for the new dark mode.

Using the dedicated preference API also gives extensions with more
complex preferences an easier and standardized way for implementing
multi-page preferences.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2012>
2022-02-08 19:11:19 +00:00
Florian Müllner
089fd315dd dbusServices/extensions: Simplify actions handling
GTK4 has dedicated API for widget-specific actions, make use of that
instead of explicitly managing an action group.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2012>
2022-02-08 19:11:19 +00:00
Florian Müllner
ae92c1c4eb dbusServices/extensions: Split error page from window
The error UI comprises the bits that are actually custom. Splitting them
out from the off-the-shelf window makes it easier to replace the dialog
with libadwaita's dedicated preference window.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2012>
2022-02-08 19:11:19 +00:00
Florian Müllner
073dbc3a04 dbusServices/extensions: Split out prefs dialog
We're about to make changes to the UI, so this seems to be a good
time to split GUI and service code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2012>
2022-02-08 19:11:19 +00:00
Florian Müllner
c071c3ed4c dbus-services/extensions: Remove outdated requires
We are using GTK4, not GTK3 >= 3.20 ...

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2012>
2022-02-08 19:11:19 +00:00
Bastien Nocera
b83b22bc58 powerProfiles: Remove support for power-profiles-daemon < 0.9.0
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2101>
2022-02-08 11:21:44 +00:00