Package: gnome-shell / 3.30.2-9

Metadata

Package Version Patches format
gnome-shell 3.30.2-9 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
ibusManager Don t pass undefined callback to ibus.patch | (download)

js/misc/ibusManager.js | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 ibusmanager: don't pass undefined callback to ibus

Since commit 551e8278416, we don't always pass a callback parameter.
However passing it on as undefined to ibus doesn't work, as gjs doesn't
accept that as a valid callback value and throw an error. As a result,
we can end up with no layout selected in the keyboard menu and an "empty"
indicator. Fix this by explicitly passing null if no callback has been
provided.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/293

Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1812266/
altSwitcher Fix error when all alternatives are disabled.patch | (download)

js/ui/status/system.js | 5 4 + 1 - 0 !
1 file changed, 4 insertions(+), 1 deletion(-)

 altswitcher: fix error when all alternatives are disabled

While we do consider the case that we don't have a child to show for the
visibility, we are still trying to move the click action unconditionally.

Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/783
dash destroy items s child before tooltip.patch | (download)

js/ui/dash.js | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 dash: destroy items's child before tooltip

Destroy the DashItemContainer's child from the same handler as the tooltip. This
will prevent invalid reads when the item is destroyed while its quicklist is
still open.

Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/781
Update Basque translation.patch | (download)

po/eu.po | 812 469 + 343 - 0 !
1 file changed, 469 insertions(+), 343 deletions(-)

 update basque translation

st button Ignore pointer emulated touch events.patch | (download)

src/st/st-button.c | 7 5 + 2 - 0 !
1 file changed, 5 insertions(+), 2 deletions(-)

 st-button: ignore pointer emulated touch events

In X11, pointer emulated touch events are replicated with normal PRESS, RELEASE
pair events which are generated by the server. Thus for a single tap we get:
 - TOUCH_BEGIN -> TOUCH_END, PRESS -> RELEASE

This will cause st-button to send two "clicked" signals, instead of just one,
breaking extensions (like dash-to-dock) that show buttons in the main stage
which will be checked two times or that will receive the same signal two times.

(cherry picked from commit 4c11d15a074aeca72627c44e327e2dc2afa93ae3)

Update Esperanto translation.patch | (download)

po/eo.po | 52 27 + 25 - 0 !
1 file changed, 27 insertions(+), 25 deletions(-)

 update esperanto translation

Update Slovak translation.patch | (download)

po/sk.po | 44 22 + 22 - 0 !
1 file changed, 22 insertions(+), 22 deletions(-)

 update slovak translation

keyboard Do not call KeyboardManager.holdKeyboard with se.patch | (download)

js/ui/status/keyboard.js | 18 16 + 2 - 0 !
1 file changed, 16 insertions(+), 2 deletions(-)

 keyboard: do not call keyboardmanager.holdkeyboard() with
 set-content-type

When gnome-shell receives the signal of 'set-content-type' from ibus,
gnome-shell calls KeyboardManager.holdKeyboard() and
KeyboardManager.releaseKeyboard() and the functions change the current
input focus in GNOME Xorg and it could result in closing a popup window
which has a password entry by focusing on the entry.
The solution is to stop to call the APIs on 'set-content-type' signal.

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

(cherry picked from commit 551e827841626cd8084daa2210b3bf60e5be96be)

Update French translation.patch | (download)

po/fr.po | 460 230 + 230 - 0 !
1 file changed, 230 insertions(+), 230 deletions(-)

 update french translation

panel Don t allow opening hidden menus via keybindings.patch | (download)

js/ui/panel.js | 4 2 + 2 - 0 !
1 file changed, 2 insertions(+), 2 deletions(-)

 panel: don't allow opening hidden menus via keybindings

We shouldn't allow toggling menus that aren't supported by the
current session mode, but as indicators are hidden rather than
destroyed on mode switches, it is not enough to check for an
indicator's existence.

Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/851
Bug-CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-3820
shellActionModes disable POPUP keybindings in unlock scre.patch | (download)

js/gdm/authPrompt.js | 3 2 + 1 - 0 !
js/gdm/loginDialog.js | 3 2 + 1 - 0 !
js/ui/shellEntry.js | 6 4 + 2 - 0 !
3 files changed, 8 insertions(+), 4 deletions(-)

 shellactionmodes: disable popup keybindings in unlock screen

Certain keybindings should continue to work even when a popup
menu is on screen. For instance, the keybinding for showing
the app menu and the keyinding for showing the calendar are
examples.

This is achieved by putting in place a special "POPUP" action
mode, whenever a popup menu is active.  This mode replaces
the (e.g., "NORMAL" or "OVERVIEW") action mode that was in place
for as long as the popup menu is active.

But those keybindings should not work when the user is at the
unlock dialog (which uses an action mode of "UNLOCK").

Unfortunately, since commit c79d24b6 they do.

This commit addresses the problem by forcing the action mode
to NONE at the unlock screen when popups are visible.

Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/851
Bug-CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-3820
inputMethod Avoid calling set_preedit_text if unnecessary.patch | (download)

js/misc/inputMethod.js | 14 10 + 4 - 0 !
1 file changed, 10 insertions(+), 4 deletions(-)

 inputmethod: avoid calling set_preedit_text() if unnecessary

This is easier down on clients.

(cherry-picked from 8c3811a866017943c276fa7d9e2aed4c0f0554ae)
(cherry picked from commit 401062800186ca26135d270f2285d8b2b5446437)

inputMethod Keep track of preedit string visibility.patch | (download)

js/misc/inputMethod.js | 17 13 + 4 - 0 !
1 file changed, 13 insertions(+), 4 deletions(-)

 inputmethod: keep track of preedit string visibility

So we can silence update-preedit-text signals that keep the
preedit string invisible.

(cherry-picked from 6f5a099184a1a5ecf558b36f2d00d2bfb074628e)
(cherry picked from commit 1cda65973272baff218244e69dca0afc329ba6da)

Update Scottish Gaelic translation.patch | (download)

po/gd.po | 728 363 + 365 - 0 !
1 file changed, 363 insertions(+), 365 deletions(-)

 update scottish gaelic translation

Update Scottish Gaelic translation 1.patch | (download)

po/gd.po | 89 44 + 45 - 0 !
1 file changed, 44 insertions(+), 45 deletions(-)

 update scottish gaelic translation

Update Icelandic translation.patch | (download)

po/is.po | 789 458 + 331 - 0 !
1 file changed, 458 insertions(+), 331 deletions(-)

 update icelandic translation

messageTray Re enable unredirection when banner is destro.patch | (download)

js/ui/messageTray.js | 7 3 + 4 - 0 !
1 file changed, 3 insertions(+), 4 deletions(-)

 messagetray: re-enable unredirection when banner is destroyed

The intention of commit 4dc20398 was to disable unredirection while
banners are shown, but the ::done-displaying signal currently used for
re-enabling unredirection is only emitted under some circumstances, so
it's possible that unredirection is left disabled indefinitely, whoops.

Fix this by tying disabling unredirection explicitly to the lifetime
of the banner actor.

(cherry picked from commit e5ce3d541e48dd75c9218312cd74ecb760ab857a)
(cherry picked from commit 51b04134db2cce3a5a8b9074d8705e4284f5088d)

dnd Only handle touch events in wayland.patch | (download)

js/ui/dnd.js | 10 10 + 0 - 0 !
1 file changed, 10 insertions(+)

 dnd: only handle touch events in wayland

There are serveral issues around touch passive grab and touch/pointer doubly
handling to use these on X11, so we stick to single-touch/pointer there.

Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1015
windowManager Don t animate touch touchpad gesture in ove.patch | (download)

js/ui/windowManager.js | 7 6 + 1 - 0 !
1 file changed, 6 insertions(+), 1 deletion(-)

 windowmanager: don't animate touch/touchpad gesture in overview

The window group is hidden while in overview, so the stick-to-content
animation isn't visible either. Worse, the gestures messes up the
position of window actors in that case.

Fix that by skipping the (invisible) animations in the overview.

Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/644
power Label the PENDING_CHARGE state as Not Charging.patch | (download)

js/ui/status/power.js | 4 3 + 1 - 0 !
po/ca.po | 4 4 + 0 - 0 !
po/de.po | 4 4 + 0 - 0 !
po/el.po | 4 4 + 0 - 0 !
po/eo.po | 4 4 + 0 - 0 !
po/es.po | 4 4 + 0 - 0 !
po/fur.po | 4 4 + 0 - 0 !
po/it.po | 4 4 + 0 - 0 !
po/ja.po | 4 4 + 0 - 0 !
po/sl.po | 4 4 + 0 - 0 !
po/sv.po | 4 4 + 0 - 0 !
po/tr.po | 4 4 + 0 - 0 !
12 files changed, 47 insertions(+), 1 deletion(-)

 power: label the pending_charge state as "not charging"

The pending-charge state means AC power is on but the battery is not
being charged. This can happen because its charge is above a certain
threshold, to avoid short charging cycles and prolong the battery's
life, or because the PSU is not powerful enough to charge the batteries.

Instead of lying to the user about something being estimated, we should
simply tell the truth and set the label to "Not Charging".

Closes: #701.

Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1745032
Bug-GNOME: https://gitlab.gnome.org/GNOME/gnome-shell/issues/701
popupMenu Respect items can focus property.patch | (download)

js/ui/popupMenu.js | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

 popupmenu: respect items' :can-focus property

Menu items use a single 'active' state that follows both hover and
keyboard focus. It therefore makes sense for the active item to always
grab the focus, in particular as an item that is sensitive but not
focusable by keynav would be rather weird.

As it turns out, we do have a case that is weird enough where we want
exactly that, so only grab focus if the actor's :can-focus property
allows it.

Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/171
Bug-Debian: https://bugs.debian.org/926453
keyboard Make items in language menu unfocusable.patch | (download)

js/ui/keyboard.js | 8 6 + 2 - 0 !
1 file changed, 6 insertions(+), 2 deletions(-)

 keyboard: make items in language menu unfocusable

The menu grabs the key focus when opened, which takes focus away from
whichever actor triggered the keyboard. And as the menu doesn't have
any text entries, the keyboard is popped down as a result.

Prevent this by making the menu items unfocusable, so the keyboard
focus just stays where it is. Considering that the menu is part
of the on-screen keyboard itself, not being keyboard-navigatable
isn't a big deal here.

Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/171
Bug-Debian: https://bugs.debian.org/926453
osk layouts Fix French layout.patch | (download)

data/gnome-shell-osk-layouts.gresource.xml | 1 1 + 0 - 0 !
data/osk-layouts/ca.json | 599 599 + 0 - 0 !
data/osk-layouts/fr.json | 89 52 + 37 - 0 !
3 files changed, 652 insertions(+), 37 deletions(-)

 osk-layouts: fix french layout

The script to convert XML keyboard layouts to json has a small bug
that causes the French-Canadian layout to end up as French.

Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/997
Bug-Debian: https://bugs.debian.org/926452
st widget Add missing g_return_val_if_fail.patch | (download)

src/st/st-widget.c | 6 5 + 1 - 0 !
1 file changed, 5 insertions(+), 1 deletion(-)

 st-widget: add missing g_return_val_if_fail()

It's a public function, so it's good practice to sanity-check its
input (unless disabled at compile time of course).

Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1018
ShellApp Use g_signal_connect_object for window signals.patch | (download)

src/shell-app.c | 6 3 + 3 - 0 !
1 file changed, 3 insertions(+), 3 deletions(-)

 shellapp: use g_signal_connect_object for window signals

A window being unmanaged can cause the ShellApp to be removed from
the ShellAppSystem, which if we are unlucky is the app's last
reference, causing it to be disposed and freed. It would be bad if this
happened before we finished handling the signal.

Use g_signal_connect_object to ensure that a reference is held to
the ShellApp for the duration of the signal handler, delaying its
last-unref.

In particular, when a signal handler calls _shell_app_remove_window(),
there is a brief period for which ShellApp breaks the intended
invariant (see !497) that app->running_state is non-NULL if and only if
app->running_state->windows is also non-NULL (non-empty). Freeing the
ShellApp at this point would cause a crash. This seems likely to be the
root cause of <https://gitlab.gnome.org/GNOME/gnome-shell/issues/750>,
<https://gitlab.gnome.org/GNOME/gnome-shell/issues/822> and
<https://bugs.debian.org/926212>.

Signed-off-by: Simon McVittie <smcv@debian.org>
(cherry picked from commit 0f531d8c44b7eaf33a32531b02dc92f08a4979e8)
(cherry picked from commit 78d6ccd804150eef30381e865e7c13dbd1608931)
Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/750
Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/822
Bug-Debian: https://bugs.debian.org/926212
tweener Save handlers on target and remove them on destro.patch | (download)

js/ui/tweener.js | 63 50 + 13 - 0 !
1 file changed, 50 insertions(+), 13 deletions(-)

 tweener: save handlers on target and remove them on destroy

Saving handlers we had using the wrapper as a property of the object and delete
them when resetting the object state.
Without doing this an handler could be called on a destroyed target when this
happens on the onComplete callback.

(cherry picked from commit e5521a22569032318808fedfd1aa4da938b0fd1e)
Bug: https://bugzilla.gnome.org/show_bug.cgi?id=791233
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/bionic/+source/gnome-shell/+bug/1747566
Bug-Debian: https://bugs.debian.org/887082
workaround_crasher_fractional_scaling.patch | (download)

src/st/st-theme-node-drawing.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 avoid crashing if width or height are nans.

This is a temporary workaround that avoid a crash if width or height are NaNs.
The true fix would be to avoid width and height to get NaN values.