19570 Commits

Author SHA1 Message Date
Florian Müllner
60aa4319d9 js: Remove unused catch bindings
Optional catch bindings have been supported for quite a while now,
so we can treat unused error bindings in catch statements like any
other unused variable.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3684>
2025-04-28 15:52:14 +00:00
Florian Müllner
a7410d82ac ci: Use python to extract JS snippets from style guide
The job that lints code snippets in the style guide only runs
when either the documentation or the linting rules are changed.

Because of that it went unnoticed that the awk tool it uses to
extract the snippets is no longer available since the CI image
was rebased to F42.

Given that awk is awkward anyway, use the opportunity to rewrite the
snippet extraction in python instead of adding awk back to the image.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3694>
2025-04-28 15:52:14 +00:00
Athmane MOKRAOUI
567eb6e0d0 Update Kabyle translation 2025-04-28 15:52:14 +00:00
Florian Müllner
11bc239e5f st: Rename styling test
Spaces in the name make it harder to run the test individually,
even with `meson-test` fixed to handle spaces.

Pick a name without spaces, and while at it, assign a suite.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3641>
2025-04-28 15:52:14 +00:00
Florian Müllner
40bf817749 toolbox/meson-test: Quote arguments
Without the quotes, arguments are subject to word splitting.

That is, it is currently not possible to run a test with spaces
in its name.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3641>
2025-04-28 15:52:14 +00:00
Florian Müllner
c9c6b46afc loginDialog: Show session menu button when in IN_PROGRESS status
Commit c8bb45b added a new IN_PROGRESS status that replaces FAILED
while the user is still allowed to retry authentication.

We need to account for it when updating the visibility of the
session menu button, otherwise the button disappears after
entering a wrong password.

Fixes: c8bb45b41c ("gdm: Limit verification cancellations to be conform to allowed-failures")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5784
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3638>
2025-04-28 15:52:14 +00:00
Philip Withnall
51db9f3f9b breakManager: Rework notification urgency setting and presentation
Move the setting of the notification’s urgency, and adding the
notification to the queue, to beside where the notification is created.

This avoids the potential for changing the urgency of an existing
notification if none of the branches above are taken, and
`this._notification` is non-empty.

Spotted by Florian Müllner in
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687#note_2405781.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687>
2025-04-28 15:52:14 +00:00
Philip Withnall
81e7c944e7 breakManager: Clarify some nextBreakType variables
This doesn’t introduce any functional changes, as
`this._manager.currentBreakType` is set to the value returned by
`this._manager.getNextBreakDue()` when entering `BreakState.BREAK_DUE`.

However, it should make the code a little clearer as now the code refers
to the ’next’ break type rather than the ‘current’ one in the context of
an upcoming break.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687>
2025-04-28 15:52:14 +00:00
Philip Withnall
0547e35224 breakManager: Update manager state after settings change
The change of settings may have affected when a break is due. In
particular, `this._breakLastEnd` is modified in `_updateSettings()`,
but `this._state` is not modified correspondingly to transition to/from
a `BREAK_DUE` state (if appropriate).

This could be the cause of the `breakDueAgo should be non-negative`
assertion failure from #8280.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8280
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687>
2025-04-28 15:52:14 +00:00
Philip Withnall
a8fcf42197 breakManager: Make brightness setting function clearer
Confusingly, the `brightness` property of
`ClutterBrightnessContrastEffect` has type `CoglColor`, but the
`set_brightness()` setter takes a single `float`.

We previously chose to use the property setter everywhere for
consistency (see
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3655#note_2369353),
but didn’t realise the types don’t match.

GJS optimises `this._brightnessEffect.brightness = foo` into a call to
`clutter_brightness_contrast_effect_set_brightness()`, which means the
type mismatch between the two results in a warning (see
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8280).

So, let’s change from a property setter into an explicit method call to
avoid the type ambiguity, at the expense of a bit of clarity from using
the same method to set the initial value and each property animation
step.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>

Helps: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8280
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687>
2025-04-28 15:52:14 +00:00
Philip Withnall
6131beead6 breakManager: Fix a potential null object dereference
There’s no `else` branch above, so it’s possible for
`this._notification` to be `null` at the bottom of the function
(especially if the user has explicitly closed the previous
notification), so handle that.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>

Helps: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8280
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3687>
2025-04-28 15:52:14 +00:00
Jerome Brenier
35ead0422c magnifier : Fix delayed variables checking
A type-safe comparision against null can be incorrectly positive with never initialized
variables (undefined).
As spotted in https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3688#note_2407551,
allowing for type coercion avoids this situation.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7854
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3688>
2025-04-28 15:52:14 +00:00
Balló György
121ac50cf3 extensions-app: Don't create window in startup phase
This fixes the problem that the process does not exit after timeout when
running as GApplication service.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3689>
2025-04-28 15:52:14 +00:00
Florian Müllner
4308caabe2 ci: Update JS image to F42
Now that the main image is based on F42, let's do the same
for JS tooling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3676>
2025-04-28 15:52:14 +00:00
Florian Müllner
d6e9620d1e ci: Rebase image to F42
Fedora has branched, and GNOME 48 updates have been landing;
this seems like a good moment to rebase our CI image.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3676>
2025-04-28 15:52:14 +00:00
Baxrom Raxmatov
d9c292dd08 Add Uzbek (Latin) translation 2025-04-28 15:52:14 +00:00
Philip Withnall
554af00a6d breakManager: Activate wellbeing settings on clicking notification
Signed-off-by: Philip Withnall <pwithnall@gnome.org>

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8305
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3685>
2025-04-28 15:52:14 +00:00
Jonas Dreßler
6dd1e99236 st/image-content: Don't force preferred content size to texture size
When ClutterImage got merged into StImageContent with commit 64d5d01360
("st: Merge ClutterImage with ImageContent"), a small error slipped in when
copying over the update_image_size() function.

Within ClutterImage, update_image_size() served a simple purpose: To call
clutter_content_invalidate_size() in case the texture size would change.
To check that, ClutterImage was storing the existing texture size in the
priv->width and priv->height fields.

When merging into StImageContent, those priv->width/height fields happened
to overlap with priv->width/height of StImageContent, but there they are
storing the preferred size, rather than the texture size. Copying
update_image_size() as-is into StImageContent meant we now set the
preferred size to the texture size, subtly breaking resource-scaled StIcons
(where texture size is a multiple of the preferred size).

The breakage isn't very apparent because StIcons manually set the size
of their internal ClutterActor child to the requested icon-size via
clutter_actor_set_size() in st_texture_cache_load_gicon(), and that makes
the child actor report the correct size in get_preferred_width/height(). The
child actor gets allocated via clutter_actor_allocate_align_fill() from
ClutterBinLayouts vfunc_allocate(), and clutter_actor_allocate_align_fill()
honors both the available size from the parent and the CONTENT_SIZE
request-mode on the child. So when the StIcon has a larger allocation (aka
extra available size), clutter_actor_allocate_align_fill() will fill that
available space with the (too large) content size.

To reproduce the issue, on a resource-scaled monitor, simply create an
StIcon with a fixed width and height that's larger than the icon-size. The
icon will be painted too large and blurry.

Fix this fallout by avoiding to touch the priv->width/height properties on
StImageContent, and instead simply comparing old texture size to new texture
size, we have both textures around after all!

Fixes: 64d5d01360 ("st: Merge ClutterImage with ImageContent")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8287
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3680>
2025-04-28 15:52:14 +00:00
Sebastian Keller
0e304100ab loginManager: Use signal argument to detect preparing for sleep
The DBus PreparingForSleep property on org.freedesktop.login1.Manager
does not trigger PropertyChanged signals, leading to wrong values due to
gdbus caching. In most cases it would have always been false.

Additionally it was not included in the XML interface description file
included in gnome-shell. So it was actually undefined.

Since this property is used in _calculateUserStateFromLogind() to
determine that a user is not active when closing the lid on a laptop,
the user was considered still active.

Fix this by storing the "start" argument from the PrepareForSleep signal
instead of trying to read from the property.

Fixes: 6a43b6f55 ("timeLimitsManager: Store screen time state on suspend/resume")
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8185
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3679>
2025-04-28 15:52:14 +00:00
Cheng-Chia Tseng
97506dece0 Update Chinese (Taiwan) translation 2025-04-28 15:52:14 +00:00
Cheng-Chia Tseng
4d7a637578 Update Chinese (Taiwan) translation 2025-04-28 15:52:14 +00:00
Jose Riha
65ca6fddb4 Update Slovak translation 2025-04-28 15:52:14 +00:00
Jose Riha
cdccde21c9 Update Slovak translation 2025-04-28 15:52:14 +00:00
Danial Behzadi
62ce97b110 Update Persian translation 2025-04-28 15:52:14 +00:00
Antonio Marin
ae428ca3d1 Update Romanian translation 2025-04-28 15:52:14 +00:00
Florian Müllner
65039f9aaa subprojects/shew: Ignore GdkX11 deprecations
The entire X11 backend was deprecated, to indicate its planned
removal in GTK5.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3675>
2025-04-28 15:52:14 +00:00
Sebastian Keller
7fc7724e85 slider: Align handle size with with pixel grid
Since the handle radius is used to calculate the width and height of the
slider, having the calculated size be a non-integer value can cause the
following widgets in a box-like container to be unaligned with the pixel
grid, which can lead to blurriness or other visual issues.

This for example could be observed with the interface font set to
"Cantarell 12", which results in a handle radius of 8.278. In quick
settings when showing two consecutive sliders, the second slider then
gets rendered at a non-integer vertical offset.

Further having a non-integer size for a StDrawingArea can cause the
texture to get slightly squished or stretched as the size of the cairo
surface is rounded to the nearest pixel, but rendered using the
unrounded actor size.

This commit changes the border radius rather than ceiling the preferred
width/height so that the handle size always matches the width or height
of the widget and there are no visual gaps caused by a partially filled
pixel.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3648>
2025-04-28 15:52:14 +00:00
Sebastian Keller
ad0d94a233 slider: Use correct handle size when calculating rightmost position
Using the ceiled radius for calculating the rightmost position the
handle can take on the slider was resulting in a small gap when the size
was not an integer value since the radius used when drawing the handle
is not ceiled.

This effectively reverts 38da479e which seems to have been the wrong fix
for the problem it was trying to solve. The problem presumably had been
caused by not considering the border that the handle still had at that
time.

The border issue was then later fixed by 3ddae9d8, without reverting
38da479e. Then in 6fd0aac8 support for drawing borders on the slider got
dropped, including the changes from 3ddae9d8, leaving us with just the
changes from 38da479e but now without borders on the handle.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8187
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3648>
2025-04-28 15:52:14 +00:00
Florian Müllner
393b05e1be Revert "ci: Disable container building temporarily"
gitlab.freedesktop.org is back, so we can re-enable the
jobs that depend on it.

This reverts commit fccd7f97c3077514ccf20992daeeb29af3f61c53.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3673>
2025-04-28 15:52:14 +00:00
Florian Müllner
f47ef5e6a0 Revert "ci: Disable sysext temporarily"
gitlab.freedesktop.org is back, so we can re-enable the
jobs that depend on it.

This reverts commit 313d71249cc869bf19e12974dacb72a6d7006b65.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3673>
2025-04-28 15:52:14 +00:00
Daniel Mustieles
bf17bf365b Updated Spanish translation 2025-04-28 15:52:14 +00:00
Vasil Pupkin
1254d940e6 Add Belarusian (Latin) translation 2025-04-28 15:52:14 +00:00
7f0d4d91b9 API changes for GNOME 48 2025-04-28 15:48:54 +00:00
c47b061e59 Fixes label scaling problem that causes giant labels to appear 2025-04-07 13:52:58 +00:00
fafe56b0bb Fix compile failure 2025-04-07 13:52:58 +00:00
69e1602a94 sync adjustment to current active workspace
In case the workspace context has changed
2025-04-07 13:52:58 +00:00
05033e0c51 Remove realm search provider. It sux. 2025-04-07 13:52:58 +00:00
661e293434 Replace window realm frame decorations with nicer label decorations 2025-04-07 13:52:58 +00:00
ee57f6de95 Implement 'detached' workspace context
There is always at least one workspace context which is the context
that is currently being used by the GNOME desktop. If no running realm
is associated with this context then we consider this context to be
'detached' and store it so that the next time a context is needed to
attach to a running realm, this 'detached' context will be used rather
than asking mutter to create a new fresh context.
2025-04-07 13:52:58 +00:00
5352b200d6 Use ClutterColor instead of GdkRGBA 2025-04-07 13:52:58 +00:00
caf601b2a8 COGL API changes 2025-04-07 13:52:58 +00:00
a0c4fedee5 1) fix restacking log warning 2) use connectObject API 2025-04-07 13:52:58 +00:00
ac7335af65 Update indicator on current-realm property change
...even if WorkspaceContext does not change.
2025-04-07 13:52:58 +00:00
c254a7391c don't use deprecated clutter container api 2025-04-07 13:52:58 +00:00
e63283cb89 Need gtk/gdk for realm window frames 2025-04-07 13:52:58 +00:00
22cb8cd311 Convert to use ESM modules
See: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1499
2025-04-07 13:52:58 +00:00
9a32a113b2 Refactor how workspaces are tracked upon workspace context change. 2025-04-07 13:52:55 +00:00
b92df61f50 Change to use Promise API instead of callbacks 2025-04-07 13:51:03 +00:00
2d3d55634f Use connectObject() and adopt to style in search.js 2025-04-07 13:51:03 +00:00
a48171ffd0 Avoid negative page values 2025-04-07 13:51:03 +00:00