Commit graph

17798 commits

Author SHA1 Message Date
Florian Müllner
9329a600bd Bump version to 44.4
Update NEWS.
2023-08-22 16:51:21 +02:00
Florian Müllner
c0c366c1c6 ci: Include .desktop files in POTFILES check
.desktop files always include translatable strings, so make sure
they are added to either POTFILES.in or POTFILES.skip.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2904>
(cherry picked from commit 168b306ffe)
2023-08-22 15:19:12 +02:00
Florian Müllner
8b20809e48 po: Update POTFILES.in
We include a .desktop file for the Extensions D-Bus
service, to provide name and icon to the preference
dialog when used without a parent window.

However we missed adding it to POTFILES.in, so it is
currently untranslated, whoops.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2904>
(cherry picked from commit 3f0d3381ee)
2023-08-22 15:19:12 +02:00
Daniel van Vugt
96d373dec4 st/viewport: Keep painting, clipping and transforms pixel-aligned
Which means adjustments always converted to ints in the same way.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6835
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2828>
(cherry picked from commit f22f5d902c)
2023-08-22 15:18:53 +02:00
Daniel van Vugt
fe6605972d st/viewport: Set the paint volume to the clipped area
Not the unclipped area that is potentially multiple screens in size.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6819
(assuming you have mutter!3112)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2828>
(cherry picked from commit cd7d99dd6b)
2023-08-22 15:18:53 +02:00
Daniel van Vugt
53f6f025c2 st/viewport: Remove unused paint volume origin calculations
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2828>
(cherry picked from commit 6e42979fc2)
2023-08-22 15:18:53 +02:00
Brendan William
dff160678a weather: Prevent setting Geoclue source as location name
Prior to Geoclue v2.7, the location description did not seem to ever be
set. Now, the source used to determine the location is set as the
description. This can result in the location name in dateMenu to be set
as "WiFi", "GeoIP", etc., since we relay the description as the location
name to GWeather. Instead, pass an empty string so GWeather continues
to set the location name itself.

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2729>
(cherry picked from commit ae86b58d59)
2023-08-22 15:18:06 +02:00
Chris Heywood
9039afa4fc messageList: Allow dismissal via backspace
Currently only the delete key can be used to dismiss notifications.
Some laptops don't have delete keys, resulting in needing to hit a
modifier to trigger delete.

Plus, on those keyboards that do have delete keys they're often a
little harder to strike than backspace.

https://gitlab.gnome.org/gnome/gnome-shell/-/issues/5789

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2435>
(cherry picked from commit f119e5282b)
2023-08-22 15:15:07 +02:00
Carlos Garnacho
53b796c86e inputMethod: Check that there is an existing cursor location
Commit 17d9ec5788 made the input method call update() more eagerly,
but also at times that it does not have a cursor position yet. Make
it bail out correctly in that situation.

Fixes: 17d9ec5788 ("inputMethod: Keep Capabilite.FOCUS before context.focus_in/focus_out")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2876>

(cherry-picked from commit 5e36a06835)
2023-08-21 17:04:43 +02:00
Takao Fujiwara
a9974ea52b inputMethod: Keep Capabilite.FOCUS before context.focus_in/focus_out
If context.focus_out() is called *after* context.set_capabilities(0),
The FocusOut D-Bus method is ignored because of no FOCUS capability.
If context.focus_out() is called *before* context.set_capabilities(0),
The 0 capability is set to the next focused context and the
FocusIn D-Bus method is ignored because of no FOCUS capability.
So context.set_capabilities(0) should not be called.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6415
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2666>
2023-08-08 12:30:59 +02:00
Takao Fujiwara
9320b65e2d inputMethod: Try to connect require-surrounding-text signal
require-surrounding-text signal has been added since IBus 1.5.28.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6405
Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2668>
(cherry picked from commit 1cfaa2379d)
2023-08-08 12:21:39 +02:00
Lukáš Tyrychtr
0149f57ef5 a11y: Don't create a parent loop for quick settings sliders
Rather than returning the parent container of the slider, which presents
itself as the slider, return the parent of the slider container.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2762>
(cherry picked from commit a5cf08ac55)
2023-08-08 12:07:36 +02:00
Florian Müllner
d8f054adb5 subprojects/gvc: Update to latest master
Pull in more bug fixes, in particular a fix for duplicated entries
and a potential crash when pulseaudio is restarted.

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

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2849>
(cherry picked from commit 3a54e6cfa8)
2023-08-08 12:07:36 +02:00
Florian Müllner
bfbe394b0f lookingGlass: Handle unprintable object
We currently throw an error when encountering a result that cannot
be represented as string, with the prompt appearing somewhat stuck
(the input cannot be committed).

Showing a lame fallback instead at least avoids that issue. When
the object has a typeof 'object' but is not an instanceof Object,
we are likely dealing with an ES module, and can show a slightly
less lame fallback.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2842>
(cherry picked from commit 03025d7cff)
2023-08-08 12:07:36 +02:00
Florian Müllner
70378f1f44 ci: Look for matching ref in user remote for branch pipeline
We currently only find a matching ref on the same remote in
a merge request pipeline, but not in branch pipelines.

It can occasionally be useful to run a pipeline without opening
a merge request, so try the same remote here as well instead of
just assuming origin.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2814>
(cherry picked from commit dbc9ebc6ab)
2023-08-08 12:07:36 +02:00
Daniel Mustieles
29e6369e8b Updated Spanish translation 2023-08-08 08:19:05 +02:00
Daniel Rusek
1635c37139 Update Czech translation 2023-08-06 15:18:29 +00:00
Daniel van Vugt
424c3f6417 main: Correct the pointer value of strtab on riscv/mips architectures
Glibc defines `d_ptr`/`d_val` to be a relocated address on most
architectures, except for riscv and mips where it is just an offset from
the binary load address. So we need to convert `strtab` from an offset
into a pointer for riscv and mips.

Internally within glibc there is the `D_PTR` macro for doing this, which
relies on private data hidden in an ABI-unstable part of `link_map`. So
we can't use the same conditional logic as glibc does internally.

Our solution is to detect when `strtab` is unreasonably low (below the
address of our binary) and so it must be an unrelocated offset. In that
case we just do the relocation manually.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6528
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2718>


(cherry picked from commit 65cde18786)
2023-08-05 15:32:39 -04:00
Daniel Mustieles
cac6a98c74 Updated Spanish translation 2023-07-19 12:57:21 +02:00
Vasil Pupkin
f37a4560ea Update Belarusian translation 2023-07-17 14:15:54 +00:00
Florian Müllner
60ec50efa6 Bump version to 44.3
Update NEWS.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2825>
2023-07-06 15:09:59 +02:00
Florian Müllner
2e8a2dcafe Revert "screencastService: Add dmabuf/GL pipeline"
The pipeline contains a GST plugin that pops up an unclosable
window. That's utterly confusing, so back out of the change
until this is figured out.

This reverts commit b916ced2e6.
Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6763
2023-07-04 16:20:06 +02:00
Florian Müllner
b409084c9c workspace: Reapply border radius on background changes
The rounded corner effect is applied to the background actor, so
we have to reapply the correct values when the background changes
for the corners to persist.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2801>
(cherry picked from commit aa11d90693)
2023-07-04 15:36:01 +02:00
Florian Müllner
624c709bed parentalControlsManager: Don't log error when disabled
We currently special-case the DISABLED error when initializing
filtering, but not on app filter changes.

While it seems reasonable that Malcontent.Manager wouldn't emit
the signal while disabled, that's not actually true: It is emitted
when any user account information tracked by AccountsServices
changes.

Even if the signal were limited to changes of the ParentalControls
extension, it would still get emitted when app filtering *becomes*
disabled.

So regardless of potential improvements in libmalcontent itself,
we should filter out the DISABLED consistently, both when creating
the initial filter and when updating it.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2796>
(cherry picked from commit 593f659a73)
2023-07-04 15:35:38 +02:00
Андрей Гриценко
43c498f263 magnifier: Fix cursor offset
Commit c449058d44 changed the pointer clone to use a single
actor. However that broke applying the hotspot translation to the
position, so the magnified cursor is now displayed with a shift.

Undo the change to restore the old behavior.

This reverts commit c449058d44.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2780>
(cherry picked from commit ae24b0247e)
2023-07-04 15:35:22 +02:00
Bruce Cowan
f3ccc0d23a Update British English translation 2023-06-30 19:20:43 +00:00
Dušan Kazik
113bcb4b10 Update Slovak translation 2023-06-08 14:09:24 +00:00
Florian Müllner
071a47ba27 Bump version to 44.2
Update NEWS.
2023-06-03 12:46:52 +02:00
Daniel Drake
ee9d4d608a ibusManager: Close candidate popup upon engine change
The IBusCandidatePopup can get 'stuck' in an active, visible state if
it is on-screen at the point when the input method is changed to a method
that doesn't use such popup (e.g. regular English).

Force the candidate popup to close when the engine is changed.
It will reappear (via regular lookup table update signal) if/when it is
next required.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6717
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2774>
(cherry picked from commit fa34d30d3e)
2023-06-01 17:48:21 +02:00
Zacharie DUBRULLE
6321ab363e dnd: Don't leak a signal connection
The handler is currently leaked when a drag monitor stops a
motion event.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2770>
(cherry picked from commit d7542db38c)
2023-06-01 17:48:07 +02:00
Sebastian Keller
54aadf8386 style: Scale calendar heading with font size
Using a fixed pixel size can result in the cell being too small for the
contained label. Instead use em to scale with the font size like is done
for the other cells. The chosen size corresponds to 16px with the
default font settings.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6651
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2759>
(cherry picked from commit ec56278cbc)
2023-06-01 17:47:40 +02:00
Joan Torres
9963ef1f09 polkitAgent: Fix closing dialog properly
When pressing the close button on the dialog the polkit request isn't
completed leaving the polkit agent blocked unable to handle new
requests.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2761>
(cherry picked from commit c57f4a1c73)
2023-06-01 17:46:36 +02:00
Carlos Garnacho
f0080a6fe8 shell: Use swapped signal connection for MetaWindowActor::destroy
The callback would schedule a clutter_actor_destroy() on the first
argument. Unless told otherwise, this is the same actor that is
already being destroyed, so this is a no-op.

Instead, the intent is to make the clone follow up destruction of
the window actor so that it results in correct removal of this
window from the ShellWindowPreviewLayout. Use a swapped connection
to pass the clone actor as the first argument of the signal callback.

Fixes: 04c781674c ("Move WindowPreviewLayout from JS to C")

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6570
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2756>
(cherry picked from commit 356bab1121)
2023-06-01 17:46:21 +02:00
Florian Müllner
b0baf0fd15 status/bluetooth: Use 'Alias' for item labels
Unlike 'Name', the 'Alias' property can be changed by the user,
so it's more suitable for user-visible labels.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2751>
(cherry picked from commit 9711a918e7)
2023-06-01 17:45:23 +02:00
robert.mader@collabora.com
05bd285b97 screencastService: Fix 'pipeline' option
When introducing the pipeline fallback mechanism, support for defining a
custom pipeline was unintentionally dropped, breaking extensions such as
EasyScreenCast.

Fixes 9cb40c4814

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2782>

(cherry picked from commit e1145defa9)
2023-05-31 00:32:00 +02:00
Daniel van Vugt
ab5dd47901 glsl-effect: Don't overwrite the framebuffer's alpha/X channel
It's a waste of effort and will also taint screenshots if they
accidentally store that channel as alpha.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6389
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2650>

(cherry picked from commit ce8af73745)
2023-05-31 00:32:00 +02:00
Jonas Dreßler
fd99d3f03f screencastService: Fixup pipeline fallback behavior
Calling _teardownPipeline() before _tryNextPipeline() was actually not a
good idea, it sets the pipelineState to STOPPED, which means we can't try
any of the following pipelines anymore.

Instead what we want to do is set the pipeline state of the old pipeline to
NULL when trying a new one, without calling _teardownPipeline() for that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2754>

(cherry picked from commit 846bb84ff6)
2023-05-31 00:32:00 +02:00
Jonas Dreßler
03d0d79a75 screenshot: Remove leftover code in property getter
According to Ivan (author of that piece of code), this is most likely a
leftover from a refactor and has no purpose anymore, so remove it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2753>

(cherry picked from commit 6476e62bff)
2023-05-31 00:32:00 +02:00
robert.mader@collabora.com
492a846014 screencastService: Add dmabuf/GL pipeline
This pipeline imports dmabufs and does format conversion using GL.
The `video/x-raw(memory:DMABuf)` filter ensures format negotiation
between `pipewiresrc` and Mutter will only succeed if Mutter advertises
dmabuf support as well, falling back to the next pipeline otherwise.

Using this pipeline frees Mutter from downloading buffer content on the
main thread which can have a big impact on compositor performance.
Doing format conversion on the GPU should further improve the overall
performance on most hardware.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2597>

(cherry picked from commit b916ced2e6)
2023-05-31 00:32:00 +02:00
Jonas Dreßler
31dfb3cbab screenshot: Also handle dbus service crashes
When the screencast dbus service crashes due to gstreamer, we should also
handle that and not pretend to continue recording.

Let's listen to g-name-owner changes for that and then also send a
notification about it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2752>

(cherry picked from commit fd730a4db7)
2023-05-31 00:32:00 +02:00
Jonas Dreßler
31571ba448 screenshot: Handle screencast errors properly
Send a notification and remove the screencast inidicator when we hear about
a screencast error from the dbus service.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2752>

(cherry picked from commit 99923ac612)
2023-05-31 00:32:00 +02:00
Jonas Dreßler
4b0f3e7a7d screencastService: Signal errors via the internal dbus interface
Make sure gnome-shell gets notified of errors that happen during screen
recording using the screencastService, so that it can properly notify the
user about the error and tear down its state, too.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2752>

(cherry picked from commit c494597a91)
2023-05-28 13:34:41 +02:00
robert.mader@collabora.com
5430de92a5 screencastService: Do not try multiple pipelines on old Pipewire versions
Pipewire versions < 0.3.67 may not fail immediatly on negotiation
errors, thus use the last/fallback pipeline directly.
Technically, a similar recent version of Wireplumber is required
as well, but we can't check that easily and the combination of old
Wireplumber and new Pipewire is quite unlikely.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2609>

(cherry picked from commit 80d72cfd32)
2023-05-28 13:33:08 +02:00
Jonas Dreßler
a9087437b8 screencastService: Add fallback mechanism for gstreamer pipelines
Introduce a fallback mechanism for gstreamer pipelines that allows to
define multiple pipelines and prefer them over each other.

The way this works is that we introduce a new STARTING PipelineState.
While the Recorder is in that state, it is allowed to tear down the
current pipeline and start another one whenever an error happens, this is
used to try multiple pipelines in a fixed order until a working one is
found.

Right now there's just a single pipeline using the existing vp8 encoder, the
actual new encoders and pipelines will be added in a separate commit.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2609>

(cherry picked from commit 9cb40c4814)
2023-05-28 13:32:51 +02:00
robert.mader@collabora.com
bfa10097d3 screencastService: Drop always-copy condition
The check for the Pipewire version was originally introduced in
d32c0348 which states:
> Since it is not clear yet when a proper solution will arrive,
> this makes use of `always-copy` as a workaround for now and
> should be reverted once it is no longer needed.

The check for a stable Gstreamer version with the mention proper fix was
introduced in d7b44319 and carried for the 43 cycle.

By the time Gnome 44 will be released all distros should have had enough
time to update their Gstreamer version - or backport the patches, in
case of not ustream-supported versions.

Thus lets drop it now.

Note: `always-copy` is not suitable for dmabuf buffers as it copies via
mmap.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2609>

(cherry picked from commit 46517e02dd)
2023-05-28 13:32:33 +02:00
Jonas Dreßler
6138145388 screencastService: Set PipelineState to PLAYING on actual state-change
Right now when we tell gstreamer to move the pipeline to the state
PLAYING, we pretend that happens immediately and set our PipelineState
to PLAYING right afterwards.

In reality though it's more complicated than that: Gstreamer changes
states asynchronously and set_state() returns a Gst.StateChangeReturn.ASYNC.
In that case we should wait until the according STATE_CHANGED event happens
on the bus, and only then set our PipelineState to PLAYING.

Since the STATE_CHANGED event will also happen when set_state() returns
SUCCESS, we can use the same async logic for that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

(cherry picked from commit cad01d154c)
2023-05-28 13:30:43 +02:00
Jonas Dreßler
f0f201290f screencastService: Handle more gstreamer errors
Gstreamer can produce various errors, we shouldn't pretend those don't
exist and go on as usual when one happens. Instead, when an error
happens, tear down the pipeline, set our PipelineState to the new ERROR
state and bail out with a proper error message.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

(cherry picked from commit 42af7e53a2)
2023-05-28 13:30:27 +02:00
Jonas Dreßler
d30e0bdf10 screencastService: Streamline teardown and error handling
We're tracking three different state-machines in the Recorder object:
The state of the gstreamer pipeline, the state of the screencast
session, and the sender of our dbus invocation that might vanish.

Properly handling errors that might appear in any of those three "black
boxes" is not easy, especially tearing down the other two when one of
them breaks.

So refactor the error handling here: Add a single error path for each of
those three states we're tracking, and make them all subsequently call
the _bailOutOnError() method. From there we tear down the other states and
call the error callbacks.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

(cherry picked from commit cbfbdc4be5)
2023-05-28 13:30:09 +02:00
Jonas Dreßler
17426dee1a screencastService: Add an ERROR state for the pipeline state tracking
This will be useful when we start actually listening for ERROR events on
the gstreamer bus.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

(cherry picked from commit e6196b5b9f)
2023-05-28 13:29:53 +02:00
Jonas Dreßler
89ac78e33f screencastService: Use strings for states
Using strings instead of numbers allows for easier debugging, it means
we can just log the state itself.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2197>

(cherry picked from commit 98cfce0ebe)
2023-05-28 13:28:59 +02:00