Commit graph

17340 commits

Author SHA1 Message Date
Florian Müllner
83c44abe00 Bump version to 43.4
Update NEWS.
2023-03-19 21:25:01 +01:00
Sebastian Keller
742437305e overview: Hide when failing to take grab at end of startup animation
Otherwise keyboard input would be going to whatever window was
preventing us from taking the grab while it is obscured by the overview.

(cherry picked from commit 56478f21e6)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2704>
2023-03-19 12:08:56 +01:00
Sebastian Keller
d70de69513 overview: Don't claim to be SHOWN when HIDDEN during startup animation
When the overview gets hidden during the startup animation, the callback
would still change the state to SHOWN, despite the overview not being
shown.

This can happen for example if a `monitors-changed` signal triggers a
relayout during startup.

See: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2514#note_1683525
(cherry picked from commit bb42973730)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2704>
2023-03-19 12:08:56 +01:00
Jonas Dreßler
c35bcd628d dnd: Handle dragActorSource getting destroyed
(cherry picked from commit de08ec915f)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2704>
2023-03-19 12:07:10 +01:00
Sebastian Keller
dbd95e2458 status/network: Fix WirelessNetwork related leaks
NetworkManager frequently refreshes the list of available access points.
For some reason this often ends up removing some or all access points
only to add them back in a later refresh later. With the exception of
the currently connected access point, which is never removed.

When all access points of a WirelessNetwork have been removed, it gets
destroyed by NMWirelessDeviceItem::_removeAccessPoint(). This however
does not happen for the currently connected network due to the always
present access point. If this network now happens to consist of multiple
access points, the "unused" NMAccessPoints will get removed and added
in these refreshes, without the WirelessNetwork getting destroyed.

Whenever such an unused access point is added, due to the use of signal
tracking this leaks the NMAccessPoint and SignalTracker until the
WirelessNetwork is destroyed.

However when the NMWirelessDeviceItem is destroyed, for example due to
suspending, it stops tracking access point changes, ensuring that the
condition for the WirelessNetwork being destroyed can not occur anymore.

Even with just two access points, such as can be found in 2.4GHz+5GHz
home routers this issue leaks hundreds of NMAccessPoints and
SignalTrackers per day. As well as a small number of WirelessNetworks
which are also kept alive by the SignalTrackers.

To fix this disconnect from the access point when it gets removed and
destroy all remaining networks when the NMWirelessDeviceItem is
destroyed.

(cherry picked from commit feb1c57dde)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2704>
2023-03-19 12:06:29 +01:00
Alan Paris
bd822513d7 Update French translation 2023-03-08 16:46:42 +00:00
Balázs Úr
6f7ff15ecc Update Hungarian translation 2023-03-02 01:30:16 +00:00
Мирослав Николић
02cb10944f Update Serbian translation 2023-02-26 18:16:58 +00:00
Aurimas Černius
c21095377f Update Lithuanian translation 2023-02-19 19:35:07 +00:00
Piotr Drąg
f4cf896d55 Update Polish translation 2023-02-18 16:19:01 +01:00
Tim Sabsch
b2386ad5f4 Update German translation 2023-02-18 13:54:10 +00:00
Martin
a672e5441e Update Slovenian translation 2023-02-15 22:29:56 +00:00
Kukuh Syafaat
8c25087b13 Update Indonesian translation 2023-02-15 03:47:12 +00:00
Yuri Chornoivan
692b5747ef Update Ukrainian translation 2023-02-14 17:55:52 +00:00
Hugo Carvalho
bcbc364da3 Update Portuguese translation 2023-02-14 10:45:14 +00:00
Ekaterine Papava
b00f8e33ad Update Georgian translation 2023-02-14 07:30:05 +00:00
Jiri Grönroos
67998e371b Update Finnish translation 2023-02-14 07:18:22 +00:00
Sabri Ünal
f8cb82179b Update Turkish translation 2023-02-14 05:18:29 +00:00
Anders Jonsson
0f4e34fdc8 Update Swedish translation 2023-02-14 05:16:38 +00:00
Florian Müllner
85f141fabd Bump version to 43.3
Update NEWS.
2023-02-14 01:11:32 +01:00
Sebastian Keller
567886893a gdmUtil: Fix SignalTracker leak in ShellUserVerifier
ShellUserVerifier was connecting to UserVerifierChoiceList signals using
SignalTracker, but never disconnected those, leading to the
corresponding SignalTracker being leaked.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6395
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2637>
(cherry picked from commit 1236bf8f09)
2023-02-13 16:58:11 +01:00
Sebastian Keller
293245dce4 authPrompt: Manually destroy inactive/unused entry
AuthPrompt creates two entries, one for text and one for passwords, but
only ever one is used as child widget. This would lead to the other one
not getting destroyed when the the AuthPrompt is destroyed.

This now manually destroys the inactive one when the AuthPrompt is
destroyed to avoid that leak.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6395
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2637>
(cherry picked from commit 572d011894)
2023-02-13 16:58:11 +01:00
Sebastian Keller
945368d823 overview: Skip SHOWN to SHOWN when changing from app grid to overview
Switching between the app grid and the window picker in the overview via
gestures results in _gestureEnd() getting called with endProgress !== 0
in both cases, which leads to it calling _showDone(). This then
unconditionally changes the state to SHOWN, which in this situation is
already the current state. Since the previous commit this results in a
warning, so check if we are already in the SHOWN state.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2514>
(cherry picked from commit f5d793647b)
2023-02-13 16:58:11 +01:00
Sebastian Keller
e15bad6cf5 overview: Validate transitions of the shown state
There have been several bugs in the past that caused invalid transitions
of the `shown` state, such as going from `showing` to `showing`. These
cause consecutive emissions of the `showing` signal, which can confuse
other classes such as the search controller which connects to the stage
`key-press-event` on showing and disconnects again on `hiding`. Having
two consecutive `showing` signals will cause it to connect twice, and
only disconnect once when hiding the overview again. This will lead to
key presses getting repeated in the search until the session is
restarted. Because there is no obvious connection to how and when this
issue got triggered, this now adds some validation code that only allows
valid transitions and throws an error otherwise so we get a backtrace of
the code actually causing the problem.

This does not fix the issue(s) causing the invalid state transitions, it
only adds a way of tracking them down.

Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4651
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2514>
(cherry picked from commit a91b6439ba)
2023-02-13 16:58:11 +01:00
Carlos Garnacho
937594b806 window-tracker: Only emit ::tracked-windows-changed on title changes
Since commit a1d650ce27, window title changes are listened for in the
ShellWindowTracker in order to emit ::tracked-windows-changed when
there are window title changes.

The rest of the things that happen in between (removing the window
from a ShellApp, possibly have it destroyed, and possibly creating a
new ShellApp to re-insert the window) are superfluous and even result
in the altTab switcher popup ending up confused about the applications
available.

Only emit the signal so changes can be followed on D-Bus, but avoid
the ShellApp fiddling otherwise.

Fixes: a1d650ce27 - window-tracker: Emit 'tracked-windows-changed' on title changes

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6385
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2634>
(cherry picked from commit 41c91c7a3b)
2023-02-13 16:58:11 +01:00
Florian Müllner
4fac895ecd extension-tool: Fix falling back to GSettings
When we switched the tool to the public Extensions service, the
fallback to GSettings broke in the case GNOME is installed but
not running (because the service can be autostarted, albeit it'll
fail later).

Fix this by also falling back when we don't get a response from
gnome-shell.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2552>
(cherry picked from commit 007778880b)
2023-02-13 16:58:11 +01:00
Florian Müllner
28899e2a56 croco: Use g_string_free() return value
glib now warns if the return value is not used, so use the API as
intended instead of assigning the character data separately before
freeing the GString.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2625>
(cherry picked from commit e86a0b32c2)
2023-02-13 16:58:11 +01:00
Florian Müllner
9b0b3ef9b9 shell/window-preview-layout: Add precondition checks
It's good practice to guard public API against programmer errors,
so do that.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2622>
(cherry picked from commit 888a0ad623)
2023-02-13 16:58:11 +01:00
Florian Müllner
344b54f18b shell/window-preview-layout: Mark return value as nullable
The function may return null, so we should mark it as such, even
if that information is currently unused.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2622>
(cherry picked from commit 1993f362d2)
2023-02-13 16:58:11 +01:00
Takao Fujiwara
846d790d70 inputMethod: Make set_surrounding() send also empty string
Empty surrounding text values needs to be sent to IBus engines
so that the engines know the focus is changed and the values are
updated.
Also InputMethod can forward the "require-surrounding-text" signal
from IBus engine to mutter.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5895
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2496>
(cherry picked from commit f4dc650585)
2023-02-13 16:58:11 +01:00
Florian Müllner
320cac69e1 subprojects/gvc: Update to latest master
Pull in a couple of bug fixes.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2616>
(cherry picked from commit 3ddb6555dd)
2023-02-13 16:58:08 +01:00
Florian Müllner
7b8d570fc9 Revert "status/volume: Clear device menus when unsetting stream"
Device additions/removals are tracked by GvcMixerControl, which
doesn't change when unsetting the stream. So clearing the menu
manually was a workaround, not a fix.

It's also worth noting that I failed to reproduce the original
issue again, so it's possible that we were working around a
pipewire bug that has since been fixed.

This reverts commit 1b62b7ea0a.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2616>
(cherry picked from commit 3de828cc60)
2023-02-13 16:55:56 +01:00
Heiko Hösch
ab101b91a2 status/network: Work around xgettext ignoring translated strings
xgettext quits parsing, when the "<"-operator follows the "++"-operator
directly.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5820
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2613>
(cherry picked from commit 35e2ac7a2a)
2023-02-13 12:49:24 +01:00
Alessandro Bono
df75341733 credentialManager: Remove unused parameter
Since 26235bbe54 is unused.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2399>
(cherry picked from commit 9671eb3ad8)
2023-02-13 12:48:58 +01:00
Alessandro Bono
8ff115a25d dash: Connect before destroying
Since commit 7bd98f3f5f animateOutAndDestroy() destroys
the placeholder right away when animations are disabled. Connect to the destroy signal
before calling the function.

This fixes the following error:
Gjs-CRITICAL **: 16:51:35.195: Object .Gjs_ui_dash_DragPlaceholderItem (0x55b9a946da20),
has been already disposed — impossible to connect to any signal on it. This might be
caused by the object having been destroyed from C code using something such as destroy(),
dispose(), or remove() vfuncs.
== Stack trace for context 0x55b9a70d08f0 ==
 #0   7ffe161bd070 b   resource:///org/gnome/shell/ui/dash.js:835 (df3d61d32e0 @ 98)
 #1   7ffe161bd170 b   resource:///org/gnome/shell/ui/dash.js:901 (df3d61d33d0 @ 779)
 #2   7ffe161bd290 b   resource:///org/gnome/shell/ui/dnd.js:562 (3d4da0cfd420 @ 909)
 #3   7ffe161bd360 b   self-hosted:1115 (3d4da0c7ef10 @ 407)

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2604>
(cherry picked from commit 325755e1c3)
2023-02-13 12:48:20 +01:00
Alessandro Bono
98f614b8fa appDisplay: Don't assume this._placeholder always exists
Dropping a icon from the dash to the application grid will set this._placeholder
to null. However the AppIcon is still used to represent the application in the
application grid. If we click on it we emit a pressed event. Stop assuming
that this._placeholder is still valid in the callback, use the icon parameter
instead.

This fixes the following error:
```
Gjs-CRITICAL **: 18:22:39.003: JS ERROR: TypeError: this._placeholder is null
_ensurePlaceholder/<@resource:///org/gnome/shell/ui/appDisplay.js:1477:17
vfunc_button_press_event@resource:///org/gnome/shell/ui/appDisplay.js:3121:27
```

Fixes: 6fc93b78bc
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6317
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2606>
(cherry picked from commit ec6ab60e62)
2023-02-13 12:47:35 +01:00
Jonas Dreßler
2d66fafbff screencastService: Handle case where no videos directory exists
The videos directory doesn't necessarily have to exist, users are free to
delete it. Right now we don't handle this case and screencasting fails.

Let's handle it and fall back to the users home directory instead when
xdg-videos doesn't exist.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2594>
2023-02-13 12:47:14 +01:00
Florian Müllner
3ef0ec9255 fileUtils: Do not follow symlinks
Extensions should not include symlinks, in particular ones that
point outside the extension directory. However if they do, then
we should only move/remove the link rather than the files it
points to.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2571>
(cherry picked from commit 1a9e072ca0)
2023-02-13 12:45:53 +01:00
Jian-Hong Pan
1a644c7e02 data: Lower down gnome-shell process' OOM score
When GNOME shell runs on a less memory system (for example 3 GB RAM), it
is usually killed by the kernel OOM-killer easily. Because, it has a
higher OOM score. However, GNOME desktop environment cannot do anything
when the GNOME shell is killed.

This commit adjusts and lowers down gnome-shell process' OOM score to
avoid being killed by the kernel OOM-killer too early. In other words,
sacrifices other processes first.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2582>
(cherry picked from commit 09c8fb5414)
2023-02-13 12:45:13 +01:00
Bruce Cowan
a1b8342977 Update British English translation 2023-01-15 11:11:15 +00:00
Sebastian Keller
a64cf7009d quickSettings: Ensure toggle buttons are aligned with the pixel grid
If the width of the menu was not a multiple of the number of columns,
the toggle buttons after the first column would not be aligned with the
pixel grid. This was causing text rendering issues and slightly blurry
icons.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6210
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2577>

(cherry picked from commit 3b216be637)
2023-01-06 14:15:46 +01:00
Sebastian Keller
c992a2fe40 quickSettings: Use column spacing not row spacing to calculate width
This did not have any not have any noticeable effect, because both are
the same size in the default theme.

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

(cherry picked from commit 54f112fa59)
2023-01-06 14:15:30 +01:00
Nart Tlisha
5da0cfad36 Update Abkhazian translation 2023-01-05 12:38:09 +00:00
Aleksandr Melman
df3cdd5116 Update Russian translation 2022-12-20 09:20:23 +00:00
Jonas Ådahl
5db40c1ead window-tracker: Emit 'tracked-windows-changed' on title changes
This means the screen share window view gets updated also when the title
of a window changes. This is important since it often changes shortly
after mapping, which would otherwise go unnoticed by
xdg-desktop-portal-gnome.

An example is launching Files and it showing up as 'Loading..', or
launching a terminal, and it not showing the proper title (current
directory), but some place holder that is never visible on the
application window.

Adding it to the window tracker instead of in introspect.js itself is
for convenience - there is no per window signal tracking there, and it
already listens to the signal emissions about changed windows.

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


(cherry picked from commit a1d650ce27)
2022-12-12 14:48:22 -05:00
Ekaterine Papava
ef58bd082b Update Georgian translation 2022-12-12 15:32:21 +00:00
Olga Smirnova
a66491eb0d Add Interlingue translation 2022-12-11 23:51:27 +00:00
Florian Müllner
e9b26eac0c Bump version to 43.2
Update NEWS.
2022-12-06 01:20:03 +01:00
Carlos Garnacho
aaf7b9e4b3 status/keyboard: Ignore purpose hint changes while keymap switcher is shown
If we are getting purpose hint changes while the language switcher is popped
up, this likely means the purpose hint was actually triggered by the key
focus change induced by the language switcher popping up.

In this case, we on one hand would like to preserve the state that applied
before thise focus change, and on the other we very much want to avoid the
keymap change that would forget about the keys being pressed.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6066
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2534>
2022-12-05 23:41:27 +01:00
Florian Müllner
792554e0d6 status/volume: Clear device menus when unsetting stream
Otherwise we end up accumulating devices when pipewire crashes or
is restarted.

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

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2558>
(cherry picked from commit 1b62b7ea0a)
2022-12-05 23:41:27 +01:00