Commit graph

18921 commits

Author SHA1 Message Date
Florian Müllner
28054f4e6b barLevel: Update cached style values before chaining up
St.DrawingArea emits the `repaint` signal on style changes, so
if we chain up first, drawing still happens with the previously
cached values.

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3376>
(cherry picked from commit 1bab7b32e5)
2024-06-28 11:35:16 +00:00
Sam Hewitt
ae0d740f1b style: Fix background color issue with menuitems
- fix missing submenu bg colors
- add submenu color definitions

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7570
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3311>
(cherry picked from commit 92063e5e46)
2024-06-28 11:35:16 +00:00
Alessandro Bono
d42f4b768e gdm/util: Cleanup CredentialManager on successful verification
CredentialManagers emit a user-authenticated signal with a token
upon a successful authentication. This marks the service as preempting
and will be used for the next login/unlock request. However, the
preempting service is not cleaned after a successful verification.
As a consequence, it will be picked on a second unlock request.

This doesn't happen after a succesful login request because there
is a transition from the gnome-shell process owened by GDM to the
one owned by the user.

Clean the preempting service on a successful verification, like we
do when the PAM conversation stops.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3291>
(cherry picked from commit 258ad57b87)
2024-06-28 11:35:16 +00:00
Alessandro Bono
1aa0dd0093 gdm/util: Simplify code
This avoids iterating and checking if a service is foreground
multiple times.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3291>
(cherry picked from commit 5877de6c3b)
2024-06-28 11:35:16 +00:00
Balló György
6c67f4fc77 extensions-app: Substitute gettext package in metainfo
The gettext domain name can be configured in meson options, but defaults
to 'gnome-shell' if it's built as a submodule.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3368>
(cherry picked from commit 1c6d76907c)
2024-06-28 11:35:16 +00:00
Florian Müllner
7be8f79560 shell/app: Remove some dead code
`g_desktop_app_info_launch_uris_as_manager_with_fds()` was added
in GIO 2.57.2. We now depend on at least 2.79.2, so we no longer
need a fallback path for the case the function isn't available.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3361>
(cherry picked from commit 55027bb084)
2024-06-28 11:35:16 +00:00
Florian Müllner
c36529c124 ci: Also store gvc subproject in artifacts
After the subproject moved to a meson wrap, its checkout is no
longer managed by gitlab.

While meson will take care of checking out required submodules
during setup, this will not happen for `test` or `dist`, so store
the checked out code in artifacts.

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3370>
(cherry picked from commit f0c14bdef3)
2024-06-28 11:35:16 +00:00
Florian Müllner
d8e493367d ci: De-duplicate build artifacts
Add an explicit dependency on the `build` job for `dist-tarball`,
so its artifacts are pulled in without re-exporting them from
the `distinfo` job.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3370>
(cherry picked from commit 9b20c96691)
2024-06-28 11:35:16 +00:00
Florian Müllner
9516946de5 ci: Use !reference tag for pipeline guard
It's a bit more flexible than yaml anchors, and already used in
mutter for the same purpose.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3370>
(cherry picked from commit 92f78a2a06)
2024-06-28 11:35:16 +00:00
Jonas Dreßler
e4344df1de portalHelper: Use default_size instead of set_size_request for size
GtkWidget.set_size_request() enforces a minimum size, while
GtkWidget.set_default_size() simply sets the default size.

The docs of set_size_request() say "In most cases,
gtk_window_set_default_size() is a better choice for toplevel windows", and
in our case it doesn't seem necessary to prohibit the window from having a
smaller size, so switch to using the default_width and default_height
properties.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3307>
(cherry picked from commit 5aa89fa9e6)
2024-06-28 11:35:16 +00:00
Jonas Ådahl
d3cc559d1b ci: Don't set GIT_SUBMODULE_STRATEGY anymore
We don't use submodules anymore, so no point configuring the submodule
strategy to use.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3353>
(cherry picked from commit 22a38c25f2)
2024-06-28 11:35:16 +00:00
Jonas Ådahl
d13aae0a1c Switch to fetching gvc via a meson subproject
Hopefully this will avoid the accidental subprojects/gvc changes.

Developers need to switch from doing

    git submodule update

to

    meson subprojects update

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3353>
(cherry picked from commit 5649ad6752)
2024-06-28 11:35:16 +00:00
Philip Withnall
ebd10437ac messageTray: Ensure _updateDatetimeId idle callback is cancelled
If the idle callback is not explicitly removed when the notification is
destroyed, it may be invoked after destruction, and try to modify the
notification after it’s been freed.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3352>
(cherry picked from commit 8176d6b51c)
2024-06-28 11:35:16 +00:00
Philip Withnall
a089421f6d shell-camera-monitor: Fix warning about strict aliasing
Changing type when casting a double pointer is not strictly allowed in
C. In order to fix compilation with `-fstrict-aliasing`, don’t use
`g_clear_pointer()` for clearing this pointer where the type expected by
the destroy notify function does not match the type stored in the
`ShellCameraMonitor` struct.

This introduces no functional changes.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3351>
(cherry picked from commit 37e49e8a22)
2024-06-28 11:35:16 +00:00
Mister Smör
7f21d4a405 docs: Fix typo in link to meta-docs
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3349>
(cherry picked from commit 245d55488b)
2024-06-28 11:35:16 +00:00
Florian Müllner
cc93d52bdd ci: Bump ci-fairy template
The new version allows @users.noreply email addresses by default,
which seems like something we should allow at least for small
drive-by contributions.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3350>
(cherry picked from commit d99a1d5457)
2024-06-28 11:35:16 +00:00
Georges Basile Stavracas Neto
d1e1576806 st/scroll-view-fade: Cleanup unecessary vfunc override
It does exactly what ClutterOffscreenEffect does these days.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3347>
(cherry picked from commit 4e449536f8)
2024-06-28 11:35:16 +00:00
Bilal Elmoussaoui
b84958ccf2 build: Make use of the x11 dependency
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3344>
(cherry picked from commit 37fd461759)
2024-06-28 11:35:16 +00:00
Bilal Elmoussaoui
27b9985da3 build: Remove unnused dependencies
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3344>
(cherry picked from commit c0c4572ed5)
2024-06-28 11:35:16 +00:00
Marco Trevisan (Treviño)
38da829351 shell-util: Pass the mutter context to the spawn child setup function
This was the type the function expected, but we were actually passing
the global context to it.

This didn't crash for some reason, but indeed it was wrong and we didn't
catch it because mutter side had not type-checks either

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3355>
(cherry picked from commit 9abad7f25f)
2024-06-27 23:54:59 +02:00
Leônidas Araújo
9bdbf5ee5b Update Brazilian Portuguese translation 2024-06-26 11:32:28 +00:00
Jose Riha
5c2f9fd948 Update Slovak translation 2024-05-27 20:45:04 +00:00
Florian Müllner
568152c222
Bump version to 46.2
Update NEWS.
2024-05-25 16:57:53 +02:00
Marco Trevisan (Treviño)
b910cc62de
js/environment: Always use Shell.util_spawn_async functions if possible
If no child setup is provided then all the shell extensions that use
GLib.spawn_async should actually use the shell spawning utils since we
are supposed to always restore the default nofile rlimit on launched
children.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3293>
(cherry picked from commit 64edd7940d)
2024-05-25 01:13:15 +02:00
Marco Trevisan (Treviño)
6ab1d1c2ec
js/environment: Add GLib spawn async overrides warning when using child setup
Using child setup functions is unsafe in gjs code so let's warn if this
happens so that extensions using a similar codepath are warned.

This could be also part of gjs, but we provide a shell override since we
have alternatives to log about.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3293>
(cherry picked from commit 494be30764)
2024-05-25 01:13:09 +02:00
Marco Trevisan (Treviño)
e633b1d4f5
js: Use Shell.util_spawn_async functions to launch external processes
As explained in previous commits, it's not safe to use JS code in child
function callbacks, so let's use the safer version of it.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6698
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3293>
(cherry picked from commit 26e8fb90fb)
2024-05-25 01:13:01 +02:00
Marco Trevisan (Treviño)
ef1bdf7934
shell-util: Add async-signal-safe wrappers for GLib.spawn_async implementations
In the shell code we often use GLib.spawn_async to launch processes
with a GSpawnChildSetupFunc implementation in JavaScript to reset the
mutter nofile rlimit in the new child process.

However, this is highly unsafe to do because this implies that the child
setup function code is executed in gjs where a lot of allocations are
done and even more not-async-signal-safe code is executed, in fact
leading to dead-locks as reported in the past.

To prevent this, declare a new functions that do the same of the GLib
counterpart but without providing a GSpawnChildSetupFunc that is instead
implemented in the C-side doing the cleanup that mutter requires without
allocations or async-signal-unsafe code.

Helps: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6698
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3293>
(cherry picked from commit 781010be66)
2024-05-25 01:12:51 +02:00
Marco Trevisan (Treviño)
f6c161ec6e
shell-app: Do not allocate memory during GSpawnChildSetupFunc
The child context setup function used as launch GSpawnChildSetupFunc
uses g_object_get that internally potentially allocates memory, making
it not async-signal-safe and so not something that is safe to use in
between fork and exec, so just use the simpler getter here.

Note that the current implementation of app_child_setup() is safe
already as sd_journal_stream_fd, dup2 and close are so.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3293>
(cherry picked from commit dcb5956dea)
2024-05-25 01:12:44 +02:00
Florian Müllner
5ddc97d630
ci: Hook up release-module
In the future, the module will automate uploading the release
tarball. We already use the CI pipeline to generate the tarball,
so it's easy to hook up the module and provide some testing
before the module goes into production.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3340>
(cherry picked from commit 1fbfb93cbd)
2024-05-25 01:12:34 +02:00
Florian Müllner
0cf3d513c7
ci: Use meson introspect to generate artifact path
We currently assume that the `CI_COMMIT_TAG` variable matches the
version component of the generated dist tarball.

That is usually correct, but sometimes errors happen and a wrong
tag is pushed, and the real release uses something like "46.0-real".

Account for that by building the artifact path from `meson introspect`
and exporting it as environment variable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3340>
(cherry picked from commit 27445a1c98)
2024-05-25 01:12:28 +02:00
Sebastian Keller
83446972e6
style: Don't use different offset for the HC app grid running indicator
The offset in high contrast mode was moving the dot too close to the
text making the spacing between the text, dot and hover highlight appear
visually unbalanced. Also it was making it more likely to overlap
descenders in the text.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3245>
(cherry picked from commit 559d38c259)
2024-05-23 00:22:54 +02:00
Sebastian Keller
fa0a7093c1
style: Shift dash running indicator dot up a pixel in high contrast mode
With the dot now being placed correctly at the bottom of the hover
highlight it is now also overlapping the 1px inset shadow used as
outline in high contrast mode. To avoid this, shift the dot up
accordingly.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3245>
(cherry picked from commit e2adc5a445)
2024-05-23 00:22:48 +02:00
Sebastian Keller
6f215fa55d
appDisplay: Set running indicator dot offset via CSS
The offset was given as a hardcoded (physical) pixel value and did not
take scaling into account. This lead to it being shifted closer towards
the icon as the scale increased.

This now replaces the hardcoded value with a CSS property which
automatically includes the scale factor.

Further this allows simplifying some calculations that previously were
trying to counteract the hardcoded offset using margins by using the
intended offset directly.

With this the dot in the dash is also now placed at exactly the bottom
of the hover highlight, while previously there was an unintentional 1px
space.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7488
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3245>
(cherry picked from commit 31997fa2f9)
2024-05-23 00:22:41 +02:00
Florian Müllner
aff1183af8
workspaceThumbnails: Update target scale when fully unexpanded
We currently only update the scale when fully expanded. In order
to fix the initial expand transition, also update the scale
when fully unexpanded.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3331>
(cherry picked from commit 6fa6dd6abb)
2024-05-22 16:32:56 +02:00
Florian Müllner
2d32848a8e
workspaceThumbnail: Don't rely on allocation to compute scale
We currently compute the target scale from the allocated height,
which means that it only becomes available after thumbnails have
been allocated at least once at their expanded height.

As the minimap is initially hidden, this only happens after it is
expanded for the first time, which means the corresponding transition
is not animated.

In order to allow for a fix, compute the target height ourselves
to allow the scale computation to work independently from the
expand factor.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3331>
(cherry picked from commit 2694a64ebb)
2024-05-22 16:32:49 +02:00
Florian Müllner
c3a31e6e6b
authPrompt: Consume cancel key event
The auth prompt currently propagates all key presses, even the
Escape press that is used to cancel it.

On the lock screen that means that the same event that cancels
the prompt (and switches back to the clock) is *also* propagated
to the handler that activates the prompt on key press.

That handler doesn't do anything when the prompt is already visible,
which is the case when the transition to the clock is animated.

However when animations are disabled, canceling the prompt will
result in a new prompt getting created immediately, and the login
screen is stuck on the prompt.

Fix this by not propagating key events that are used to cancel
the prompt.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3317>
(cherry picked from commit e7dc0de75e)
2024-05-22 16:32:41 +02:00
Florian Müllner
c22d56e75f
authPrompt: Use signal handler instead of vfunc
The prompt itself may get destroyed when canceled, in which
case it is no longer possible to chain up in the vfunc.

This is usually not an issue as the prompt is only destroyed
at the end of a transition, but it results in a warning if
animations are disabled.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3317>
(cherry picked from commit dac4f2cb86)
2024-05-22 16:32:33 +02:00
segfault
418276e4d1
automountManager: Fix password not re-asked for TCRYPT devices
Since commit

  f881092bbc

released in cryptsetup 2.5.0, cryptsetup returns EPERM instead of EINVAL
when the TCRYPT header can't be decrypted with the provided
password and parameters.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7631
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3300>
(cherry picked from commit 9e6552a20d)
2024-05-22 16:31:48 +02:00
Sebastian Wick
571126e229
tests: Make sure XDG_CURRENT_DESKTOP is set to an empty string
gsettings overrides can be in affect when XDG_CURRENT_DESKTOP is set. We
need predictable default values for predictable tests in mutter and thus
mutter will start asserting that GSETTINGS_BACKEND='memory' and
XDG_CURRENT_DESKTOP=''.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3329>
(cherry picked from commit beb3f120dd)
2024-05-22 16:31:38 +02:00
Ray Strode
8c3b242e5d
gdm/util: Make sure error is GError before checking it
The fingerprint device fetching code has a generic error handler,
that assumes the passed in error is GError. If it's not a
GError it will fail trying to use GError specific methods.

This commit adds some validation checking.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3319>
(cherry picked from commit d8ab090d47)
2024-05-22 16:31:26 +02:00
Florian Müllner
1d4df339ef
croco: Remove unused and dodgy function
The function creates a parser object that is never used nor
freed, then always returns NULL.

Luckily it's unused, so just remove it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3321>
(cherry picked from commit 3220005eea)
2024-05-22 16:31:20 +02:00
Florian Müllner
c4a923801d
accessDialog: Stop owning portal name
We no longer provide a portal implementation, so there's no need
for owning the name. Right now only the gnome portal consumes
the API, and that accesses it under "org.gnome.Shell".

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3326>
(cherry picked from commit 9cafdb6d27)
2024-05-22 16:31:14 +02:00
Sam Hewitt
0ad1756a64
style: Adjust font sizes in Calendar popover
- increase the font size definition for %smaller used by calendar
- drop numeric time style for weather box

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7400
Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6024
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3313>
(cherry picked from commit aa2c8ae435)
2024-05-22 16:31:04 +02:00
Sebastian Keller
20623458ae
status/keyboard: Use '+' to separate variant when launching tecla
The code was not changed when switching from gkbd-keyboard-display which
was using tab to separate layout and variant. Tecla uses '+' instead.

This fix was suggested by Neil Mayhew.

Fixes: 04aaa4b67 ("keyboard: Spawn "tecla" to show keyboard map")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7638
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3324>
(cherry picked from commit 658beda9a9)
2024-05-22 16:30:57 +02:00
Sam Hewitt
65f7dcbdba
style: Fix contrast issues of themed icons in messages
- increase circular bg color transparency

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7628
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3315>
(cherry picked from commit 1053b5826a)
2024-05-22 16:30:31 +02:00
Sam Hewitt
d97fc92c45
style: Adjust margin on search results grid to fix Large Text display
- drop unneeded margin definitions that cause results items to disappear when Large Text is enabled

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7511
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3312>
(cherry picked from commit 25ad8c9408)
2024-05-22 16:30:24 +02:00
Sam Hewitt
1379df716b
style: New window-icon class to split it from icon-dropshadow
- new class for window icons in window picker
- move HC specific styles to this new class

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/-/issues/507
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3310>
(cherry picked from commit 6fee2c24e3)
2024-05-22 16:30:18 +02:00
Florian Müllner
268fb63e81
style: Don't force symbolic notification icons
With the addition of notification headers, we no longer include
an icon with every notification, but only when the notification
explicitly specifies an icon (other than the app icon).

After those changes, it makes more sense to use the icon as
provided by the app than forcing the symbolic style (which
only works for themed icons anyway).

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7620
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3296>
(cherry picked from commit 676503ff27)
2024-05-22 16:30:05 +02:00
Florian Müllner
ddaeec69d8
messageList: Only apply special styling to symbolic icons
The styling introduced in commit 8fed0b83d was only intended
for symbolics, it looks weird when applied to full-color icons.

So instead of using the GIcon type, apply the special styling
based on the new StIcon:is-symbolic property.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7620
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3296>
(cherry picked from commit a94b80b2d4)
2024-05-22 16:29:58 +02:00
Florian Müllner
03253382ee
st/icon: Add :is-symbolic property
It can be useful to know whether an icon displays a symbolic (rather
than just requesting it). Add a new :is-symbolic property for that
purpose, backed by private API on StImageContent that allows the
texture cache to shuffle that information through to the icon.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3296>
(cherry picked from commit 56cc755bf6)
2024-05-22 16:29:51 +02:00