Commit Graph

19286 Commits

Author SHA1 Message Date
1e6c92a083 status/a11y: Block 'toggled' signal when manually toggling
When the 'text-scaling-factor' key changes and it's set bigger than 1.0,
the corresponding switch is activated in the a11y menu. However, since
commit 946ee93692, setting the state using
`setToggleState()` also fires the 'toggled' signal, which is I think
correct and intended.

However, that means the GSettings handler for 'text-scaling-factor'
should block that 'toggled' handler when it sets the switch active, as
otherwise the 'text-scaling-factor' is always set to 1.25 when it is
first made bigger than 1.0.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3574>
2025-01-04 22:41:47 +01:00
5057a7fe0e appDisplay: Add org.freedesktop.MalcontentControl to Utilities
malcontent-control is now a standalone app that is displayed in Shell Overview.
Let's place it in the Utilities folder instead of taking up space (and confusing users)
in the main app grid

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8124
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3579>
2025-01-04 16:09:09 +00:00
3d87782a58 status/a11y: Simplify "Large Text" toggle
It is the last user of `_buildItemExtended()`, so merge it with
`_buildFontItem()`.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3576>
2025-01-04 15:42:29 +00:00
6029380267 status/a11y: Simplify switch setup
Almost all switches represent boolean settings, which means we can
use bindings instead of fiddling with signal handlers.

As menu items have a `:sensitive` property, this also deals with
handling keys' writability.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3576>
2025-01-04 15:42:29 +00:00
296e5c32e4 popupMenu: Expose SwitchItem state as GObject property
This will allow using bindings instead of explicit signal connections.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3576>
2025-01-04 15:42:29 +00:00
6dbb2eef50 popupMenu: Avoid unnecessary accessible state update in switch items
The accessible state is already updated when changing the switch state.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3576>
2025-01-04 15:42:29 +00:00
3421a3825a popupMenu: Make checkAccessibleState() private
Updating the accessible state is an internal business of the
class, so making it private is more appropriate.

Besides, it was never called from outside the class since it
was added in 2012, so it's unlikely we'll ever have a use case
for it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3576>
2025-01-04 15:42:29 +00:00
46efbfb2ab build: Use python instead of perl to convert glsl source into a C string
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3578>
2025-01-04 11:24:53 +00:00
9b9191e858 runDialog: Require matching key-press for ESC shortcut
Both popover menus and dialogs can be dismissed with the Escape key,
however the former triggers on key press, while the latter triggers
on key release. As a result, the same key press+release can dismiss
both the command entry's context menu and the run dialog itself.

Fix this by only triggering a key shortcut when a matching key press
was recorded before, which matches how Dialog handles button shortcuts.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8132
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3585>
2025-01-04 00:29:14 +01:00
50ce1fcee7 extensions-app: Allow closing window with ctrl+w
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3577>
2025-01-02 16:06:06 +00:00
e1be874a5f ci: Switch to GNOME GitLab mirror of ci-templates
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3580>
2025-01-02 14:35:49 +00:00
0e53dd22aa Update Vietnamese translation 2025-01-01 06:54:12 +00:00
8fbaa5e55a Adapt to split clutter/pango
In https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4106, all of
the fonts rendering related bits are now behind a build option and under
a different header.

So we bail out if mutter was built without it & make sure we include the
new clutter-pango header where needed.

<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3544>

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3544>
2024-12-28 13:39:31 +01:00
9a0261f102 Update Belarusian translation 2024-12-28 09:05:22 +00:00
58a1e000fa animation: Use new spinner content
Change the dedicated Spinner widget to use the corresponding content
instead of subclassing AnimatedIcon with appropriate assets.

Other than the changed class hierarchy, the public API stays the
same, so the impact on callers should be minimal.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/8055
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3565>
2024-12-24 15:37:20 +00:00
9783f72d74 st/spinner-content: Add ClutterContent for a loading indicator
Last cycle, libadwaita added a new Spinner widget whose visuals
we should adapt. It loops extremely slowly though (a framerate
of 60fps would require 3180(!) frames), which means our current
asset-based implementation isn't well-suited for the job.

Instead, reimplement the underlying GdkPaintable as ClutterContent.
This does not only ensure consistency with libadwaita, but also
gives us more flexibility by picking up style information from
the widget the content is attached to.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3565>
2024-12-24 15:37:20 +00:00
2508325ad7 Update Russian translation 2024-12-19 16:09:29 +00:00
60dd2cd7a8 lightbox: Use variable magnitude for dithering noise
The magnitude of the noise in the final output scales with:

 1.0 - cogl_color_out.a

A fixed value for the magnitude relative to cogl_color_out.a might be
too small for large cogl_color_out.a or too large for small
cogl_color_out.a (or possibly even both).

Compensate for this to achieve constant magnitude in the final output.
The coefficients were determined experimentally as a compromise between
preventing colour banding with dark background content and tolerable
noise with bright background content.

This helps for the issue described in
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7795 .

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3572>
2024-12-16 15:17:25 +00:00
cbfcf17002 breakManager: Fix (un)inhibiting unredirection
The BreakManager is a relatively recent addition, which is probably
why commit 4034e69d0d missed it.

Fixes: 4034e69d0d ("Adapt to fixed Meta functions namespace")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3575>
2024-12-16 14:52:11 +01:00
f89276fc56 magnifier: Fix (un)inhibiting unredirection
The methods for (un)inhibiting unredirection are on the compositor,
not the display.

Fixes: 4034e69d0d ("Adapt to fixed Meta functions namespace")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3575>
2024-12-16 14:40:45 +01:00
4034e69d0d Adapt to fixed Meta functions namespace
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3546>
2024-12-11 19:58:23 +01:00
961075d0e4 lg: Use Clutter functions directly
Instead of the duplicated ones in Meta as they will be removed.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3546>
2024-12-11 19:56:26 +01:00
4980b4fce0 app-system: Mark as a final type
Also use subclassing macros

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3525>
2024-12-11 16:50:54 +00:00
8d8f150685 network-agent: Mark as a final type
Also use subclassing macros

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3525>
2024-12-11 16:50:54 +00:00
ab41daefcf screenshot: Mark as a final type
It was already declared as such, so get rid of the priv boilerplate.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3525>
2024-12-11 16:50:54 +00:00
71ecb8e6cd mime-sniffer: Mark as a final type
It was already declared as such, so get rid of the priv boilerplate.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3525>
2024-12-11 16:50:54 +00:00
791cbc7d5d mount-operation: Mark as a final type
It was already declared as such, so get rid of the priv boilerplate.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3525>
2024-12-11 16:50:54 +00:00
910565a09a tray-manager: Mark as a final type
It was already declared as such, so get rid of the priv boilerplate.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3525>
2024-12-11 16:50:54 +00:00
e2a7d3753f theme-node-transition: Mark as a final type
It was already declared as such, so get rid of the priv boilerplate.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3525>
2024-12-11 16:50:54 +00:00
6ea7253322 texture-cache: Mark as a final type
It was already declared as such, so get rid of the priv boilerplate.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3525>
2024-12-11 16:50:54 +00:00
37282383fc st/box-layout: Remove deprecated & unused pack-start property
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3525>
2024-12-11 16:50:54 +00:00
2a0ed7cf53 ci: Adapt to updated release module template
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3573>
2024-12-11 13:57:15 +01:00
99ac42d438 Revert "ci: Use meson introspect to generate artifact path"
This reverts commit 27445a1c98.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3573>
2024-12-11 13:55:43 +01:00
64d5d01360 st: Merge ClutterImage with ImageContent
ClutterImage as is, is very basic and doesn't really serve any purposes
other than being inherited by StImageContent. As we cannot easily push
ImageContent to Mutter by merging it with ClutterImage because it will
bring more GdkPixbuf usages and also because Clutter doesn't really deal
with theming bits.

Instead, merge it with StImageContent and let GNOME Shell take over from
here.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3547>
2024-12-09 12:34:42 +00:00
ea88ba687e st/image-content: Remove usage of private struct
As it is a final type.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3547>
2024-12-09 12:34:42 +00:00
4cff5e4572 tools/toolbox: Work around systemd issue
systemd-sysext currently messes up SElinux labeling[0].

As a workaround, we can delegate to the systemd-sysext service
that doesn't exercise the same issue.

[0] https://github.com/systemd/systemd/issues/34387

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3498>
2024-12-05 12:57:30 +00:00
4847d8bc95 tools/toolbox: Document new sysext tooling
Add a small section to outline how to combine `meson-build.sh --sysext` and
`toolbox-sysext-install.sh` to install a system extension from our toolboxes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3498>
2024-12-05 12:57:30 +00:00
af96549515 tools/toolbox: Add toolbox-sysext-install.sh script
The new command will take an extension directory set up
with `meson-build --sysext` inside a toolbox, and turn
it into a merged system extension on the host.

Namely it will
 1. copy the extension directory from the container to the host
 2. set up the extension-release file expected by systemd-sysext
 3. compile gsettings schemas if necessary (using the merged
    schemas directory)
 4. install the extension to either runtime or system
 5. merge the extension

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3498>
2024-12-05 12:57:30 +00:00
886481beb1 tools/toolbox: Install sysext dependencies if necessary
While the toolbox image itself has all necessary dependencies to
build and run the shell, we still need them in the destdir when
building a system extension.

Achieve this by running .gitlab-ci/install-common-dependencies.sh
if it exists, which is the script that is used both for gnome-os
system extensions and mutter's CI image.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3498>
2024-12-05 12:57:30 +00:00
2df35aaa73 tools/toolbox: Add --sysext option to meson-build
When specified, the project is installed to a separate destdir
inside the container instead of the container's root filesystem.

This can be used to install several projects into a common extension
directory:

```
 $ (cd mutter; meson-build.sh --sysext) &&
   (cd gnome-shell; meson-build.sh --sysext)
```

We will later add a separate command to extract the directory
from the container and turn it into a system extension suitable
for use with systemd-sysext.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3498>
2024-12-05 12:57:30 +00:00
fd4320156c ci: Change update-mutter to also install to sysext dir
Out development toolbox contains an `update-mutter` command to
make it easier to keep mutter up-to-date for people who only
want to deal with gnome-shell.

To allow them to make use of the new sysext tooling, change the
command to install both to the toolbox root and the sysext
directory.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3498>
2024-12-05 12:57:29 +00:00
52a293c032 ci: Make --destdir option in install-meson-project cumulative
When building a system extension for GNOME OS, any extra
dependencies are needed both in the container (for building)
and the extension's destdir (for running).

Because of that, the --destdir flag that was added in commit
8aeb6dc86 does not only install to the specified directory
as expected, but also runs a second install step without
destdir (i.e. to the system).

However that behavior is not a good fit when we extend our
existing toolbox tooling to build system extensions for
Fedora instead of GNOME OS.

To account for that, make the --destdir option cumulative
and install the project to all provided destdirs (or /
if omitted).

This gives us the flexibility to install to the system, a
different destdir, or both:

```
 $ ./install-meson-project.sh  # install to system
 $ ./install-meson-project.sh --destdir /new/dest  # install to destdir
 $ ./install-meson-project.sh --destdir /new/dest --destdir /  # both
```

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3498>
2024-12-05 12:57:29 +00:00
5434e02988 Revert "ci: Temporarily allow build-sysext CI job to fail"
This reverts commit aacc968f0e.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3570>
2024-12-04 18:19:39 -03:00
b57f762167 Revert "ci: Temporarily neutralize image build job"
This reverts commit 942f7e87be.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3570>
2024-12-04 18:19:30 -03:00
942f7e87be ci: Temporarily neutralize image build job
It's failing CI too often, and too consistently. This should be
reverted once CI failures are gone.

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3569>
2024-12-03 16:02:59 -03:00
572fe52f94 st: Adapt to paint node changes
See https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/4160

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3569>
2024-12-03 17:25:53 +00:00
3bc2ab6ba9 Update Slovenian translation 2024-12-01 09:25:01 +00:00
5d8905c5c7 data: Really strip .desktop suffix from folder directory
Commit 730fcf34e9 was meant to strip the .desktop suffix from the
desktop directory file, but failed to actually do so: The replace()
method is called on the string parameter before it is passed to
the meson command which substitutes `@BASENAME@`, so it doesn't
have any effect at all.

Really fix the issue by providing the full output name.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3567>
2024-11-29 19:49:02 +01:00
88e19ff32e ci: Update JS image to F41
The main image was already updated a while ago, let's do the
same for JS tooling.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3563>
2024-11-29 12:09:52 +00:00
aacc968f0e ci: Temporarily allow build-sysext CI job to fail
GitLab is currently timing out a lot, and the number of consecutive `git
clone` operations which the `build-sysext` job does is basically
guaranteed to fail at some point. I’ve tried one CI run 30 times in a
row without success.

Temporarily allow this job to fail until GitLab is fixed.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3251>
2024-11-28 10:44:17 +00:00