Commit Graph

16372 Commits

Author SHA1 Message Date
Ivan Molodetskikh
71c6918588 screenshot: Add API to get PNG stream from a texture
With the new screenshot UI we're introducing, we'll be capturing all
screenshots to textures on the GPU at first, and then create a PNG
stream from those textures at a later point. This will allow us to
present screenshots immediately to the user so they can inspect them and
select the right area before actually saving them to disk.

As a first step to make this work, introduce a new ShellScreenshot API
that writes an existing CoglTexture to a PNG output stream:
shell_screenshot_composite_to_stream ()

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1954>
2022-01-27 22:25:42 +00:00
Ivan Molodetskikh
7245f95165 screenshot-ui: Add IconLabelButton
A button that has an icon and a subtitle label.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1954>
2022-01-27 22:25:42 +00:00
Ivan Molodetskikh
df0cd3457f screenshot-ui: Add close button
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1954>
2022-01-27 22:25:42 +00:00
Ivan Molodetskikh
3b4fe9af31 screenshot-ui: Add the control panel
The (currently empty) panel resides on the primary monitor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1954>
2022-01-27 22:25:42 +00:00
Ivan Molodetskikh
8ebc478f0f Add scaffolding for the new screenshot UI
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1954>
2022-01-27 22:25:42 +00:00
Jonas Dreßler
81f62e9df8 lightbox: Fix banding issues with the vignette shader
Just as https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/352
did for the MetaBackgroundActor in mutter, let's fix the vignette shader
in gnome-shell, too.

Based on a patch originally propsed by Nikita Churaev, see
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/59.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3942
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2133>
2022-01-27 22:16:50 +01:00
Florian Müllner
f9037f5889 shell/app: Do not try to activate OR windows
Since https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2029,
we track all windows, including OR ones. While this means that we can
now assume that any window can be matched to an app, it also means
we have to be more careful to not perform an unsupported action like
focus or raise on an OR window.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2131>
2022-01-27 14:30:49 +01:00
Matej Urbančič
6f025822ba Update Slovenian translation 2022-01-26 20:49:50 +00:00
Yosef Or Boczko
0812722a5b Update Hebrew translation 2022-01-25 20:55:17 +00:00
Jonas Dreßler
7c49ac5242 altTab: Also use getWindows() for AppSwitcher
Use our custom filtering for meta_display_get_tab_list() in AppSwitcher
to be consistent and make sure the thumbnail list also includes the
remapping done in getWindows().

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2098>
2022-01-25 20:03:01 +00:00
Jonas Dreßler
c8f3db31b8 altTab: Only calculate iconSize once
Right now, _setIconSize() calculates the icon size everytime the
preferred height of AppSwitcher is calculated, which happens quite
often.

Reduce the perfomance impact by only calculating the icon size once.
This has the added benefit of preventing unexpected changes to the icon
sizes while the switcher is open.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2098>
2022-01-25 20:03:01 +00:00
Jonas Dreßler
7f65fa49db altTab: Check for reentrancy in override function of _onItemMotion()
Just like in the parent _onItemMotion() function, we should check for
reentrancy in our override.

Because the hover timeout will prevent a new selection from happening
for some time, in addition to checking for this._highlighted reentrancy,
we also need to track the item that's being hovered during the timeout.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2098>
2022-01-25 20:03:01 +00:00
Florian Müllner
1e2a10f83b shellDBus: Return error on invalid app IDs
When passing an invalid or unknown app ID to FocusApp(), we currently
open the app picker and silently fail to select the desired app.
Instead of half-working like that, make it clear that the argument
was invalid by returning an appropriate error. (It's easy to get the
ID wrong, as unlike appstream/flatpak IDs, we include the ".desktop"
suffix).

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/337>
2022-01-25 20:18:35 +01:00
Daniel van Vugt
e38a416246 lightbox: GLSL requires real numbers, not integers
At least backward-compatible GLSL requires real numbers only. It's a
fatal shader compilation error to use integers in GLES and older GL
versions like that of i915.

Fixes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2115
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2125>
2022-01-25 15:38:04 +00:00
Leleat
f4b75d02cc popupMenu: Center labels vertically
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2113>
2022-01-25 15:32:31 +00:00
Florian Müllner
b54111ef88 cleanup: Use logical assignments
gjs updated mozjs to a version that support assignment operators
for logical operators, so use those where appropriate.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2115>
2022-01-25 15:21:16 +00:00
Florian Müllner
1fe79a331f lint: Partially sync with gjs
As in commit bf5129adc1, leave out putting the Formats module on
the verboten list.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2115>
2022-01-25 15:21:16 +00:00
Florian Müllner
b001f18440 ci: Update js image
- switch to F35 base
 - update eslint
 - update mozjs to 91
 - install current gnome-extensions tool instead of ancient tag

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2115>
2022-01-25 15:21:16 +00:00
Florian Müllner
a0c8462170 ci: Bump mutter image
Needed for the new mozjs91-based gjs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2115>
2022-01-25 15:21:16 +00:00
Tao Liu
753eee2ef9 Update Chinese (China) translation 2022-01-24 19:14:05 +00:00
Florian Müllner
869560e054 extensions-tool: Request missing attribute
g_file_enumerator_iterate() requires an enumerator that was created
with standard::file.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2121>
2022-01-22 13:05:30 +00:00
Sam Hewitt
6a88c0f0be stylesheet: Fixes and missed updates for the 42 refresh
- increase the looking glass outer radii
- adjust the colours to be less dark
- fix oversized notification close icon
- fix separators and reduce padding in popovers
- fix colour mismatch in switch assets
- fix color of no-notifications asset
- rename assets to be consistent with dark-as-default scheme
- update checkbox assets
- fix calendar today border
- reduce icon size of placeholder notifications icon

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2111>
2022-01-21 18:11:37 +00:00
Georges Basile Stavracas Neto
87927b8281 ui: Rename gnome-control-center to org.gnome.Settings
The app-id has changes since  [1].

[1] https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1153

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2123>
2022-01-21 10:44:37 -03:00
Georges Basile Stavracas Neto
e7c728a4c1 schemas: Rename gnome-control-center to org.gnome.Settings
The app-id has changes since  [1].

[1] https://gitlab.gnome.org/GNOME/gnome-control-center/-/merge_requests/1153

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2123>
2022-01-21 10:22:53 -03:00
Naïm Favier
3de418ea3b loginDialog: Fix timing issue
Fix the first task of the timed login batch not returning the hold on
`_waitForItemForUser`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2116>
2022-01-20 20:40:40 +00:00
Florian Müllner
6a10f2f2f1 panel: Fix corner transition when slowed down
Both ease() and CSS durations take the slow-down factor into account,
so the corners currently end up using the square of the factor in their
transition.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2118>
2022-01-20 19:18:15 +01:00
Sam Hewitt
199529a67d style: Stylesheet updates for GNOME 42
- updated switch assets
 - new high contrast assets
- use non-hardcoded bg color for dash
- updated palette colors
 - add missing color definitions to hc
- increase radii of many elements
- update search entry style
- align icon better in search entry
- restyle panel popovers without arrow and add drop shadow
- used theme colors in panel
- fix some things with popover labels
- new slider style
- some light variant fixes
- fixes to the calendar popover
 - day with event styles
 - better calendar-today.svg and dark variant
 - shorten calendary weekday header
 - saner padding
- overhaul popover menu style
- minor fixes to app grid and alt-tab switch
- updated looking glass styles
- nm-dialog adjustments
- search results adjustments
- expand out panel button hover styles
- button drawing adjustments
- adjust notifications area
- update on-screen keyboard style
 - better keyboard symbolic icon assets
 - change keyboard symbolic icons to 24px
 - improved keyboard style
 - gave the keyboard word suggestions some styles
- less obnoxious saner media control buttons
- cleaned up the css for the dash
- reworked the alt-tab switcher style
- sync style on workspace switcher
- adjusted dialog button style drawing
- popover submenu redrawing adjustement

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2104>
2022-01-14 20:14:21 +00:00
Ivan Molodetskikh
0e4b87fe5a screencastService: Create directory if it doesn't exist
Instead of testing if the videos directory exists and using the home
directory otherwise, just try to create the target directory. This
aligns with how the screenshot UI handles the screenshots folder, and
it's convenient for putting screencasts into a subdirectory.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2102>
2022-01-14 18:42:47 +00:00
Aleksandr Mezin
12c300a7a2 extensionSystem: Ignore spurious disable-extension-version-validation change
Ignore spurious change notificatons, when the setting didn't actually change
(triggered by `dconf update`)

Workaround for https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4808

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2047>
2022-01-14 15:23:09 +00:00
Ray Strode
11401c13ed gdmUtil: Enable support for GDM's ChoiceList PAM extension
This commit hooks up support for GDM's ChoiceList PAM extension.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1978>
2022-01-13 15:31:32 -05:00
Ray Strode
051a6be121 gdm: Add AuthList control
Ultimately, we want to add support for GDM's new ChoiceList
PAM extension.  That extension allows PAM modules to present
a list of choices to the user. Before we can support that
extension, however, we need to have a list control in the
login-screen/unlock screen.  This commit adds that control.

For the most part, it's a copy-and-paste of the gdm userlist,
but with less features.  It lacks API specific to the users,
lacks the built in timed login indicator, etc. It does feature
a label heading.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1978>
2022-01-13 15:03:02 -05:00
Jonas Dreßler
7ae694990b altTab: Use this._highlighted instead of this._curApp in AppSwitcher
Thanks to the parent class (SwitcherPopup), we already have a property
for the currently highlighted item, let's use it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2097>
2022-01-12 12:25:19 +00:00
Jonas Dreßler
98e270e698 altTab: Remove override of _itemEnteredHandler()
This override function is identical to the original function, so remove
it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2097>
2022-01-12 12:25:19 +00:00
Jonas Dreßler
d8a38672f1 altTab: Also return EVENT_PROPAGATE in override of _onItemMotion()
Clutter expects a return value here, so make sure we also return
Clutter.EVENT_PROPAGATE just like the function we override does.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2097>
2022-01-12 12:25:19 +00:00
Jonas Dreßler
87101cf165 switcherPopup: Rename _onItemEnter() to _onItemMotion()
Since commit e94de67b, this is called by a motion-event handler instead
of enter-event, so let's adjust the function name.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2097>
2022-01-12 12:25:19 +00:00
Sebastian Keller
ac4412e4aa lookingGlass: Add switches for debug flags
This adds a new "Flags" tab to looking glass where several debug flags
can be toggled at run time. This includes:

ClutterDebugFlags
ClutterDrawDebugFlags
MetaDebugPaintFlags
MetaDebugTopics
MetaContext::unsafe-mode

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3968
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1994>
2022-01-11 21:39:28 +00:00
Evan Welsh
828da18b72 background: Don't override synchronous load() with an async version
Instead, override the asynchronous version to avoid conflicting with
the parent signature.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2040>
2022-01-11 21:24:26 +01:00
Florian Müllner
2d6f4aabf9 ci: Add missing node type
Spotted in the error logs of
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2040

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2089>
2022-01-11 20:10:57 +00:00
Jürg Lempen
fe3a80ab9f data: Add Swiss French and Swiss German OSK layouts
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2096>
2022-01-11 20:14:44 +01:00
Florian Müllner
330894f84a Bump version to 42.alpha
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2095>
2022-01-10 19:20:59 +01:00
Danial Behzadi
f1dc05fe7d Update Persian translation 2022-01-10 11:41:23 +00:00
Robert Mader
ee41dfdb8c ControlsManager: Propagate unmap before hiding the WorkspacesDisplay
Hiding the `WorkspacesDisplay` triggers a reallocation of the
`ControlsManagerLayout` which can fail with the following error:
```
JS ERROR: TypeError: workspace is undefined
_getSpacing@resource:///org/gnome/shell/ui/workspacesView.js:229:13
vfunc_allocate@resource:///org/gnome/shell/ui/workspacesView.js:355:18
vfunc_allocate@resource:///org/gnome/shell/ui/overviewControls.js:200:33
vfunc_hide@resource:///org/gnome/shell/ui/workspacesView.js:1070:38
vfunc_unmap@resource:///org/gnome/shell/ui/overviewControls.js:672:33
hideOverview@resource:///org/gnome/shell/ui/layout.js:312:28
_hideDone@resource:///org/gnome/shell/ui/overview.js:617:32
onComplete@resource:///org/gnome/shell/ui/overview.js:390:37
_makeEaseCallback/<@resource:///org/gnome/shell/ui/environment.js:134:13
_easeActorProperty/<@resource:///org/gnome/shell/ui/environment.js:298:60
```

This can be reproduced by closing the overview with the three-finger
gesture.

Thus propagate the unmap before hiding the `WorkspacesDisplay`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2088>
2022-01-09 16:50:48 +01:00
Joan Torres
f3eb01642f main: Don't terminate remote session in headless mode
Now gnome-shell can know if it is on headless mode
(depends on https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2130) and not terminate
a headless remote session when the session is locked.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2057>
2022-01-08 18:18:55 +00:00
Rafael Fontenelle
596432d7ea Update Brazilian Portuguese translation 2022-01-07 22:57:03 +00:00
Florian Müllner
88a8bc7419 st/box-layout: Deprecate :pack-start property
A property for reversing the visible order of children is a bit odd.

It has also been unused by actual gnome-shell code since 2010, and the
somewhat related pack_start()/pack_end() API in GtkBox(Layout) is gone
in GTK4.

With that in mind, turn the property into a no-op and deprecate it,
so that it can be dropped next cycle.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2085>
2022-01-07 21:47:47 +00:00
Sebastian Keller
f322e00ca5 windowManager: Set correct unfullscreen gesture enabled state on startup
The unfullscreen gesture was defaulting to enabled until the first
window focus change. With it now being run in the capture phase, the
gesture was preventing clicks in the top panel except on the activities
button before the first window was opened.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2087>
2022-01-06 04:53:23 +01:00
Florian Müllner
8c1cf3fa3d dbusServices/extensions: Instruct gjs to generate unique GType names
Like the main gnome-shell process, the extensions service loads code from
extensions. It therefore makes sense to prevent GType name clashes there
as well, just like we already to in the gnome-shell process.

This may break some extensions that use the old type name in .ui files,
but they can be fixed easily by specifying an explicit GTypeName.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2024>
2022-01-05 19:28:25 +00:00
Nate Graham
a13b2358a9 shell/app: Honor XDG SingleMainWindow key
This is the upstreamed version of X-GNOME-SingleWindow which is now a
part of the XDG desktop file spec as of version 1.5; see
https://gitlab.freedesktop.org/xdg/xdg-specs/-/merge_requests/53

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2084>
2022-01-05 18:14:09 +00:00
Florian Müllner
a48fd70e38 ci: Bump mutter image
Mutter itself now depends on a more recent wayland-protocols, so
update to the correct image version to fix the CI build.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2086>
2022-01-05 19:02:12 +01:00
Sebastian Keller
2801d0bfe3 messageTray: Close SHOWING banner when its notification is destroyed
Currently only banners in the SHOWN state are hidden when the underlying
notification is destroyed, but if they are in the SHOWING state, they
remain visible. Because the 'notification' member has already been set
to null when the notification got destroyed, closing the banner by
clicking on the close button, will not do anything and clicking on the
notification itself will result in an error message. For notifications
without a timeout, i.e. critical ones, this will result in an
uncloseable notification.

This can happen if the program creating a critical notification
immediately closes it again, as might happen with power notifications
from gnome-settings-daemon in some situations.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4855
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2079>
2022-01-05 15:51:14 +00:00