Commit graph

18361 commits

Author SHA1 Message Date
Florian Müllner
0957fed26b Merge branch '45-8-1' into 'gnome-45'
Bump version to 45.8.1

See merge request GNOME/gnome-shell!3405
2024-06-29 23:25:13 +00:00
Florian Müllner
ad59492167
Bump version to 45.8.1
Update NEWS.
2024-06-30 01:23:48 +02:00
Florian Müllner
b64105b014
ci: Include subprojects in tarball
jasmine-gjs isn't widely available in distributions, so instead
of adding an obscure build dependency, include the subproject
in the tarball.

The --include-subprojects flag only applies to subprojects that
are used in the build, so we do not bundle gi-docgen that is
provided in the mutter image.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3164>
(cherry picked from commit 372dfc5f75)
2024-06-30 01:22:00 +02:00
Florian Müllner
76e1ba4de2
Bump version to 45.8
Update NEWS.
2024-06-29 14:50:32 +02:00
Sundeep Mediratta
e952b8922e
workspace: Use better window check option in existing code
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3386>
(cherry picked from commit 46c74acb1b)
2024-06-28 15:13:06 +02:00
Sundeep Mediratta
d1cc16d718
workspace: Initialize overview windows correctly in constructor
Currently overview windows added in workspace constructor lack monitoring
the skip-taskbar property. All other windows added after this have
this monitoring.

This uses existing code to correctly add the signal and removes all redundant
code.

It also insures all transients are handled correctly on initialization using
the existing code.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3386>
(cherry picked from commit 8af8a27d91)
2024-06-28 15:13:06 +02:00
Keyu Tao
a9c843b8b3
workspacesView: Make active workspace above siblings
If there's a window flowing over the left edge in a workspace, the
animation of showing or hiding overview in the left adjacent workspace
would glitch, as the window would appear or disappear suddenly.

This commits tries to fix it by making sure the active workspace are
above other workspaces when updating workspaces or active workspace
changed in workspacesView.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7364
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3378>
(cherry picked from commit ab87629241)
2024-06-28 15:13:06 +02:00
Jonas Dreßler
f65e0f8202
st/theme-node-drawing: Factor in border radius in update_resources()
The reduced border radius from st_theme_node_reduce_border_radius()
depends
on the allocation size, and when it changes, has_large_corners can
change.
has_large_corners is used to determine whether to pre-render using
cairo,
so that means a change to the allocation size can influence whether the
pre-render using cairo should happen or not.

On changes to the allocation size we don't want to call
render_resources()
though, but just update_resources() instead. And since we know now that
changes to the allocation size might cause pre-rendering to get enabled
or disabled, we need to do the "should pre-render" checks in
update_resources(), too.

So factor out those "should pre-render" checks into a new function
st_theme_node_maybe_prerender_background(), and then call that function
from
both render_resources() and update_resources().

This fixes rendering artifacts with borders or rounded corners after
changes
to the actor size.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6567
Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3354>
(cherry picked from commit e1868cab1a)
2024-06-28 15:13:06 +02:00
Florian Müllner
937691c858
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 15:13:06 +02:00
Alessandro Bono
406d5f29f0
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 15:13:06 +02:00
Alessandro Bono
e0ef898d75
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 15:13:06 +02:00
Florian Müllner
4252cff505
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 15:13:06 +02:00
Florian Müllner
ef1f874c3b
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 15:13:06 +02:00
Florian Müllner
385dfba17b
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 15:13:06 +02:00
Jonas Dreßler
4331745ac7
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 15:13:06 +02:00
Jonas Ådahl
35fa188ad8
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 15:13:06 +02:00
Jonas Ådahl
4e1d634090
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 15:13:06 +02:00
Philip Withnall
39526f7665
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 15:13:06 +02:00
Philip Withnall
0af05089fa
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 15:13:06 +02:00
Florian Müllner
2434c03e65
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 15:13:06 +02:00
Georges Basile Stavracas Neto
be4c7059a1
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 15:13:05 +02:00
Bilal Elmoussaoui
0a04996d22
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 15:13:05 +02:00
Bilal Elmoussaoui
759b822dfd
build: Remove unnused dependencies
Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3344>
(cherry picked from commit c0c4572ed5)
2024-06-28 15:13:05 +02:00
Florian Müllner
7252d85b9d
extensions-app: Fix app ID in .Devel metainfo
The ID is currently hard-coded to the non-development one, with
the result that the .Devel app effectively doesn't have any
metainfo.

Fix that by configuring the file with the correct ID.

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3158>
(cherry picked from commit dfff65bf05)
2024-06-28 15:13:05 +02:00
Florian Müllner
2c66b1befd
Bump version to 45.7
Update NEWS.
2024-05-26 13:03:30 +02:00
Marco Trevisan (Treviño)
6b33e6fe6d
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-26 12:53:45 +02:00
Marco Trevisan (Treviño)
c23dba8f41
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-26 12:53:38 +02:00
Marco Trevisan (Treviño)
4424db5a44
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-26 12:53:28 +02:00
Florian Müllner
85162f9af3
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-26 12:53:15 +02:00
Florian Müllner
5e063d3167
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-26 12:52:38 +02:00
Florian Müllner
e8679b5ed6
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:39:04 +02:00
Florian Müllner
67a6c13d92
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:38:58 +02:00
Florian Müllner
6f4529e44d
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:38:35 +02:00
Florian Müllner
bdf981b171
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:38:30 +02:00
segfault
89e15061a0
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:38:14 +02:00
Sebastian Wick
6ba5a847aa
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:38:09 +02:00
Florian Müllner
dd7fb0cd1f
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:37:39 +02:00
Sebastian Keller
9c0873ee0e
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:37:02 +02:00
Simon McVittie
b55368b22d
screencast: Correct expected bus name for streams
Previously, this only worked because GDBusConnection was not filtering
signals by their sender correctly (GNOME/glib#3268).

Thanks: Alicia Boya García
Signed-off-by: Simon McVittie <smcv@debian.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3303>
(cherry picked from commit 50a011a19d)
2024-05-07 20:22:42 +02:00
Jonas Ådahl
d40d4153bd
ci: Run tests with the timeout multiplier set to 5
Sometimes the test runners are saturated with other work. Bump the test
timeouts by a multiplier of 5 with the hope that they now will be much
more likely to have time to finish in time.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3299>
(cherry picked from commit f31099cd85)
2024-05-07 20:22:19 +02:00
Marco Trevisan (Treviño)
e525255163
na-tray-child: Use absolute icon position as root event coordinates
Currently we're using relative positioning when sending click events to
tray icon clients, and this leads to some apps (especially Qt ones) to
try to open the menus at such absolute coordinate under X11.

To prevent this to happen, let's get the root coordinate from the xembed
and let's use it to compute the synthetic event root x/y.

We could have even used the actual event position for this, but getting
it from the xembed makes this more consistent.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3283>
(cherry picked from commit 794acd65a8)
2024-05-07 20:22:06 +02:00
pesader
3a79934cef
unlockDialog: Also center the time in 12h format
Since the time string uses a space to pad single-digit numbers, the
centered label looks off-center. Fix this by applying the trim()
function to get rid of whitespaces.

The drawback of this approach is that the label will change position
slightly when the time changes, but for the lockscreen that's okay.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6193
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3290>
(cherry picked from commit ccdd46c0d9)
2024-05-07 20:21:42 +02:00
Marco Trevisan (Treviño)
f838c15871
workspaceAnimation: Do not create clones for override redirect windows
Override redirect windows manage their own positioning and size alone
and are always sticky, so we're not covering them either with the
animation MonitorsGroup, and thus there's no need to clone them or we'd
end up having two windows painted.

This was causing the shell tray icon window actors (that have no opacity
by default but that are override redirect) to show up during the
animation as their clone animation is not 0.

The other option would be hide them during the animation phase, but
there's no need for this.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3285>
(cherry picked from commit 3a34c16eca)
2024-05-07 20:21:35 +02:00
Sebastian Keller
70a141ae0f
portalHelper: Fix handling of invalid TLS certificates
WebKitGTK 6.0 moved allow_tls_certificate_for_host() from WebContext to
NetworkSession. This was not adjusted here when the portal helper was
switched from 4.0 to 6.0.

2d1b53b211

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7597
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3284>
(cherry picked from commit b7079b8f2f)
2024-05-07 20:21:25 +02:00
Sebastian Wick
c085170aac
shell-util: Only use systemd if gnome-shell is managed by systemd
Simply looking at the return value of sd_pid_get_user_unit can be used
to determine if the process is in a systemd unit, but it doesn't say if
gnome-shell is managed by systemd.

For example, running toolbx on a host with systemd creates a libpod
unit, even if the gnome-shell that gets started in the toolbx is itself
not managed by systemd.

We can make sure that gnome-shell is managed by systemd simply by
checking if the unit we're running starts with org.gnome.Shell.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3267>
(cherry picked from commit b3580919e3)
2024-05-07 20:20:47 +02:00
Florian Müllner
0bacf38337
Bump version to 45.6
Update NEWS.
2024-04-21 14:32:39 +02:00
Florian Müllner
1b410b52af
cleanup: Replace deprecated String.prototype.substr()
The method is documented as deprecated:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/substr

Switch to the non-deprecated substring() method.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3234>
(cherry picked from commit df50c2dfc6)
2024-04-21 14:30:55 +02:00
Florian Müllner
8d32c4eac3
cleanup: Don't use substring to check prefix
String.prototype.startsWith() is more idiomatic in that case.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3234>
(cherry picked from commit 193b6c129e)
2024-04-21 14:30:54 +02:00
Florian Müllner
97fa46130b
Bump version to 45.5
Update NEWS.
2024-03-16 14:58:22 +01:00
Jonas Dreßler
f8bd39fbcc
subprojects/gvc: Bump gvc submodule to newest commit
A few fixes have landed in gvc recently that should fix a crash,
so bump the submodule to include those.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3233>
(cherry picked from commit de754db469)
2024-03-15 18:23:02 +01:00