[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#928093: marked as done (unblock (pre-approval): gnome-shell/3.30.2-9)



Your message dated Sun, 28 Apr 2019 08:21:00 +0000
with message-id <bb26ae05-b4ba-491c-5308-3fd9a014f661@thykier.net>
and subject line Re: Bug#928093: unblock (pre-approval): gnome-shell/3.30.2-9, mutter/3.30.2-7
has caused the Debian Bug report #928093,
regarding unblock (pre-approval): gnome-shell/3.30.2-9
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
928093: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=928093
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Now that gnome-shell's RC bugs are (hopefully) dealt with, I'd like
to update gnome-shell with the remaining bug fixes from the upstream
gnome-3-30 branch, backported from 3.32.x development.

> gnome-shell (3.30.2-9) UNRELEASED; urgency=medium
>
>   * d/p/ShellApp-Use-g_signal_connect_object-for-window-signals.patch:
>     Mark as forwarded and applied upstream
>   * d/p/tweener-Save-handlers-on-target-and-remove-them-on-destro.patch,
>     d/p/workaround_crasher_fractional_scaling.patch:
>     Move non-upstreamed patches to appear last in d/p/series

Basically documentation: no functional effect.

>   * Update patch series from gnome-3-30 branch, up to 3.30.2-19-g1f03c94d3
>     - d/p/inputMethod-Avoid-calling-set_preedit_text-if-unnecessary.patch,
>       d/p/inputMethod-Keep-track-of-preedit-string-visibility.patch:
>       Avoid a bad interaction between gnome-shell, GTK, non-English input
>       methods, WebKitGTK and Evolution that can cause text to be deleted
>       unintentionally when Ctrl or Alt is pressed (Closes: #927719)

This seems like a nasty failure mode. I'm not sure whether it has already
been fixed in buster via one of the other affected components, but it's
probably safest to deal with "complicated interaction" bugs like this
by making all the components as robust as possible.

>     - d/p/messageTray-Re-enable-unredirection-when-banner-is-destro.patch:
>       If a notification appears while a game or other graphically intensive
>       application is full-screen, correctly re-enable unredirection (for
>       its performance benefits) when the notification closes
>       (Closes: #927718)

This can apparently be quite a bad performance regression, and is
easily fixed.

>     - d/p/dnd-Only-handle-touch-events-in-wayland.patch:
>       Fix a bug seen in X11 mode where extensions that use drag-and-drop,
>       such as dash-to-dock, can get the Shell into a state where
>       interaction with apps is no longer possible

This seems like a nasty failure mode, and is particularly important
if people want to make X11 mode the default for GNOME (as was done
for stretch).

>     - d/p/windowManager-Don-t-animate-touch-touchpad-gesture-in-ove.patch:
>       When the four-finger swipe up/down touchpad gesture is used to move
>       between workspaces, don't move application windows to the wrong place

This seems somewhat obscure, but it's a straightforward fix.

>     - Update translations: gd, is

Presumably harmless.

Proposed diff attached, filtering out the translation update patches for
brevity. Is this (plus a `dch -r`) suitable for upload to unstable?

Thanks,
    smcv
 debian/changelog                                   |   29 +
 ..._signal_connect_object-for-window-signals.patch |    9 +-
 debian/patches/Update-Icelandic-translation.patch  | 1981 ++++++++++++++++++++
 .../Update-Scottish-Gaelic-translation-1.patch     |  332 ++++
 .../Update-Scottish-Gaelic-translation.patch       | 1889 +++++++++++++++++++
 .../dnd-Only-handle-touch-events-in-wayland.patch  |   34 +
 ...d-calling-set_preedit_text-if-unnecessary.patch |   48 +
 ...d-Keep-track-of-preedit-string-visibility.patch |   69 +
 ...nable-unredirection-when-banner-is-destro.patch |   47 +
 debian/patches/series                              |   12 +-
 ...n-t-animate-touch-touchpad-gesture-in-ove.patch |   41 +
 11 files changed, 4486 insertions(+), 5 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 6f6c22a11..67aec735f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,32 @@
+gnome-shell (3.30.2-9) UNRELEASED; urgency=medium
+
+  * d/p/ShellApp-Use-g_signal_connect_object-for-window-signals.patch:
+    Mark as forwarded and applied upstream
+  * d/p/tweener-Save-handlers-on-target-and-remove-them-on-destro.patch,
+    d/p/workaround_crasher_fractional_scaling.patch:
+    Move non-upstreamed patches to appear last in d/p/series
+  * Update patch series from gnome-3-30 branch, up to 3.30.2-19-g1f03c94d3
+    - d/p/inputMethod-Avoid-calling-set_preedit_text-if-unnecessary.patch,
+      d/p/inputMethod-Keep-track-of-preedit-string-visibility.patch:
+      Avoid a bad interaction between gnome-shell, GTK, non-English input
+      methods, WebKitGTK and Evolution that can cause text to be deleted
+      unintentionally when Ctrl or Alt is pressed (Closes: #927719)
+    - d/p/messageTray-Re-enable-unredirection-when-banner-is-destro.patch:
+      If a notification appears while a game or other graphically intensive
+      application is full-screen, correctly re-enable unredirection (for
+      its performance benefits) when the notification closes
+      (Closes: #927718)
+    - d/p/dnd-Only-handle-touch-events-in-wayland.patch:
+      Fix a bug seen in X11 mode where extensions that use drag-and-drop,
+      such as dash-to-dock, can get the Shell into a state where
+      interaction with apps is no longer possible
+    - d/p/windowManager-Don-t-animate-touch-touchpad-gesture-in-ove.patch:
+      When the four-finger swipe up/down touchpad gesture is used to move
+      between workspaces, don't move application windows to the wrong place
+    - Update translations: gd, is
+
+ -- Simon McVittie <smcv@debian.org>  Sat, 27 Apr 2019 09:32:10 +0100
+
 gnome-shell (3.30.2-8) unstable; urgency=medium
 
   * Team upload
diff --git a/debian/patches/ShellApp-Use-g_signal_connect_object-for-window-signals.patch b/debian/patches/ShellApp-Use-g_signal_connect_object-for-window-signals.patch
index e4316844d..6685564c8 100644
--- a/debian/patches/ShellApp-Use-g_signal_connect_object-for-window-signals.patch
+++ b/debian/patches/ShellApp-Use-g_signal_connect_object-for-window-signals.patch
@@ -1,5 +1,5 @@
 From: Simon McVittie <smcv@debian.org>
-Date: Tue, 16 Apr 2019 23:59:58 +0100
+Date: Tue, 16 Apr 2019 22:59:58 +0000
 Subject: ShellApp: Use g_signal_connect_object for window signals
 
 A window being unmanaged can cause the ShellApp to be removed from
@@ -20,11 +20,14 @@ 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>.
 
-Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/508
+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
-Signed-off-by: Simon McVittie <smcv@debian.org>
+Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/508
+Applied-upstream: 3.32.2, commit:78d6ccd804150eef30381e865e7c13dbd1608931
 ---
  src/shell-app.c | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/debian/patches/Update-Icelandic-translation.patch b/debian/patches/Update-Icelandic-translation.patch
new file mode 100644
index 000000000..a6578e01c
diff --git a/debian/patches/Update-Scottish-Gaelic-translation-1.patch b/debian/patches/Update-Scottish-Gaelic-translation-1.patch
new file mode 100644
index 000000000..0a215ffc1
diff --git a/debian/patches/Update-Scottish-Gaelic-translation.patch b/debian/patches/Update-Scottish-Gaelic-translation.patch
new file mode 100644
index 000000000..3c7576fd7
diff --git a/debian/patches/dnd-Only-handle-touch-events-in-wayland.patch b/debian/patches/dnd-Only-handle-touch-events-in-wayland.patch
new file mode 100644
index 000000000..71e415145
--- /dev/null
+++ b/debian/patches/dnd-Only-handle-touch-events-in-wayland.patch
@@ -0,0 +1,34 @@
+From: Andrea Azzarone <andrea.azzarone@canonical.com>
+Date: Mon, 4 Mar 2019 16:14:22 +0000
+Subject: 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
+Origin: upstream, 3.30.3, commit:843ed09b0954f256225b6aacc631a9131a191981
+---
+ js/ui/dnd.js | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/js/ui/dnd.js b/js/ui/dnd.js
+index 8483e89..755c49b 100644
+--- a/js/ui/dnd.js
++++ b/js/ui/dnd.js
+@@ -132,6 +132,16 @@ var _Draggable = new Lang.Class({
+     },
+ 
+     _onTouchEvent(actor, event) {
++        // We only handle touch events here on wayland. On X11
++        // we do get emulated pointer events, which already works
++        // for single-touch cases. Besides, the X11 passive touch grab
++        // set up by Mutter will make us see first the touch events
++        // and later the pointer events, so it will look like two
++        // unrelated series of events, we want to avoid double handling
++        // in these cases.
++        if (!Meta.is_wayland_compositor())
++            return Clutter.EVENT_PROPAGATE;
++
+         if (event.type() != Clutter.EventType.TOUCH_BEGIN ||
+             !global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
+             return Clutter.EVENT_PROPAGATE;
diff --git a/debian/patches/inputMethod-Avoid-calling-set_preedit_text-if-unnecessary.patch b/debian/patches/inputMethod-Avoid-calling-set_preedit_text-if-unnecessary.patch
new file mode 100644
index 000000000..60d816f5d
--- /dev/null
+++ b/debian/patches/inputMethod-Avoid-calling-set_preedit_text-if-unnecessary.patch
@@ -0,0 +1,48 @@
+From: Carlos Garnacho <carlosg@gnome.org>
+Date: Tue, 13 Nov 2018 18:26:13 +0100
+Subject: inputMethod: Avoid calling set_preedit_text() if unnecessary
+
+This is easier down on clients.
+
+(cherry-picked from 8c3811a866017943c276fa7d9e2aed4c0f0554ae)
+(cherry picked from commit 401062800186ca26135d270f2285d8b2b5446437)
+
+Origin: upstream, 3.30.3, commit:401062800186ca26135d270f2285d8b2b5446437
+Bug: https://gitlab.gnome.org/GNOME/gtk/issues/1447
+Bug-Debian: https://bugs.debian.org/927719
+---
+ js/misc/inputMethod.js | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js
+index 4a92dc4..e22dfcc 100644
+--- a/js/misc/inputMethod.js
++++ b/js/misc/inputMethod.js
+@@ -144,8 +144,11 @@ var InputMethod = new Lang.Class({
+             this._updateCapabilities();
+         }
+ 
+-        // Unset any preedit text
+-        this.set_preedit_text(null, 0);
++        if (this._preeditStr) {
++            // Unset any preedit text
++            this.set_preedit_text(null, 0);
++            this._preeditStr = null;
++        }
+     },
+ 
+     vfunc_reset() {
+@@ -154,8 +157,11 @@ var InputMethod = new Lang.Class({
+             this._emitRequestSurrounding();
+         }
+ 
+-        // Unset any preedit text
+-        this.set_preedit_text(null, 0);
++        if (this._preeditStr) {
++            // Unset any preedit text
++            this.set_preedit_text(null, 0);
++            this._preeditStr = null;
++        }
+     },
+ 
+     vfunc_set_cursor_location(rect) {
diff --git a/debian/patches/inputMethod-Keep-track-of-preedit-string-visibility.patch b/debian/patches/inputMethod-Keep-track-of-preedit-string-visibility.patch
new file mode 100644
index 000000000..549ff4291
--- /dev/null
+++ b/debian/patches/inputMethod-Keep-track-of-preedit-string-visibility.patch
@@ -0,0 +1,69 @@
+From: Carlos Garnacho <carlosg@gnome.org>
+Date: Tue, 13 Nov 2018 18:28:15 +0100
+Subject: 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)
+
+Origin: upstream, 3.30.3, commit:1cda65973272baff218244e69dca0afc329ba6da
+Bug: https://gitlab.gnome.org/GNOME/gtk/issues/1447
+Bug-Debian: https://bugs.debian.org/927719
+---
+ js/misc/inputMethod.js | 17 +++++++++++++----
+ 1 file changed, 13 insertions(+), 4 deletions(-)
+
+diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js
+index e22dfcc..0f5590b 100644
+--- a/js/misc/inputMethod.js
++++ b/js/misc/inputMethod.js
+@@ -17,6 +17,7 @@ var InputMethod = new Lang.Class({
+         this._currentFocus = null;
+         this._preeditStr = '';
+         this._preeditPos = 0;
++        this._preeditVisible = false;
+         this._ibus = IBus.Bus.new_async();
+         this._ibus.connect('connected', this._onConnected.bind(this));
+         this._ibus.connect('disconnected', this._clear.bind(this));
+@@ -80,6 +81,7 @@ var InputMethod = new Lang.Class({
+         this._enabled = false;
+         this._preeditStr = ''
+         this._preeditPos = 0;
++        this._preeditVisible = false;
+     },
+ 
+     _emitRequestSurrounding() {
+@@ -98,20 +100,27 @@ var InputMethod = new Lang.Class({
+     _onUpdatePreeditText(context, text, pos, visible) {
+         if (text == null)
+             return;
+-        this._preeditStr = text.get_text();
+-        this._preeditPos = pos;
++
++        let preedit = text.get_text();
++
+         if (visible)
+-            this.set_preedit_text(this._preeditStr, pos);
+-        else
++            this.set_preedit_text(preedit, pos);
++        else if (this._preeditVisible)
+             this.set_preedit_text(null, pos);
++
++        this._preeditStr = preedit;
++        this._preeditPos = pos;
++        this._preeditVisible = visible;
+     },
+ 
+     _onShowPreeditText(context) {
++        this._preeditVisible = true;
+         this.set_preedit_text(this._preeditStr, this._preeditPos);
+     },
+ 
+     _onHidePreeditText(context) {
+         this.set_preedit_text(null, this._preeditPos);
++        this._preeditVisible = false;
+     },
+ 
+     _onForwardKeyEvent(context, keyval, keycode, state) {
diff --git a/debian/patches/messageTray-Re-enable-unredirection-when-banner-is-destro.patch b/debian/patches/messageTray-Re-enable-unredirection-when-banner-is-destro.patch
new file mode 100644
index 000000000..ec0ebb6ff
--- /dev/null
+++ b/debian/patches/messageTray-Re-enable-unredirection-when-banner-is-destro.patch
@@ -0,0 +1,47 @@
+From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuellner@gnome.org>
+Date: Thu, 22 Nov 2018 17:18:34 +0000
+Subject: 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)
+
+Origin: upstream, 3.30.3, commit:51b04134db2cce3a5a8b9074d8705e4284f5088d
+Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/799
+Bug-Debian: https://bugs.debian.org/927718
+---
+ js/ui/messageTray.js | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
+index 20469af..99f0cf9 100644
+--- a/js/ui/messageTray.js
++++ b/js/ui/messageTray.js
+@@ -1309,10 +1309,8 @@ var MessageTray = new Lang.Class({
+         }
+ 
+         this._banner = this._notification.createBanner();
+-        this._bannerClickedId = this._banner.connect('done-displaying', () => {
+-            Meta.enable_unredirect_for_display(global.display);
+-            this._escapeTray();
+-        });
++        this._bannerClickedId = this._banner.connect('done-displaying',
++                                                     this._escapeTray.bind(this));
+         this._bannerUnfocusedId = this._banner.connect('unfocused', () => {
+             this._updateState();
+         });
+@@ -1462,6 +1460,7 @@ var MessageTray = new Lang.Class({
+ 
+         this._pointerInNotification = false;
+         this._notificationRemoved = false;
++        Meta.enable_unredirect_for_display(global.display);
+ 
+         this._banner.actor.destroy();
+         this._banner = null;
diff --git a/debian/patches/series b/debian/patches/series
index 845875a2a..3bd9dc33c 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -9,11 +9,19 @@ keyboard-Do-not-call-KeyboardManager.holdKeyboard-with-se.patch
 Update-French-translation.patch
 panel-Don-t-allow-opening-hidden-menus-via-keybindings.patch
 shellActionModes-disable-POPUP-keybindings-in-unlock-scre.patch
+inputMethod-Avoid-calling-set_preedit_text-if-unnecessary.patch
+inputMethod-Keep-track-of-preedit-string-visibility.patch
+Update-Scottish-Gaelic-translation.patch
+Update-Scottish-Gaelic-translation-1.patch
+Update-Icelandic-translation.patch
+messageTray-Re-enable-unredirection-when-banner-is-destro.patch
+dnd-Only-handle-touch-events-in-wayland.patch
+windowManager-Don-t-animate-touch-touchpad-gesture-in-ove.patch
 power-Label-the-PENDING_CHARGE-state-as-Not-Charging.patch
-tweener-Save-handlers-on-target-and-remove-them-on-destro.patch
-workaround_crasher_fractional_scaling.patch
 popupMenu-Respect-items-can-focus-property.patch
 keyboard-Make-items-in-language-menu-unfocusable.patch
 osk-layouts-Fix-French-layout.patch
 st-widget-Add-missing-g_return_val_if_fail.patch
 ShellApp-Use-g_signal_connect_object-for-window-signals.patch
+tweener-Save-handlers-on-target-and-remove-them-on-destro.patch
+workaround_crasher_fractional_scaling.patch
diff --git a/debian/patches/windowManager-Don-t-animate-touch-touchpad-gesture-in-ove.patch b/debian/patches/windowManager-Don-t-animate-touch-touchpad-gesture-in-ove.patch
new file mode 100644
index 000000000..67d95237a
--- /dev/null
+++ b/debian/patches/windowManager-Don-t-animate-touch-touchpad-gesture-in-ove.patch
@@ -0,0 +1,41 @@
+From: Xiang Fan <sfanxiang@gmail.com>
+Date: Sat, 16 Mar 2019 18:53:52 +0800
+Subject: 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
+Origin: upstream, 3.30.3, commit:1f03c94d311edffb77d9f87b8fbd6e26eb04e148
+---
+ js/ui/windowManager.js | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
+index adfee93..e11b09c 100644
+--- a/js/ui/windowManager.js
++++ b/js/ui/windowManager.js
+@@ -1049,6 +1049,10 @@ var WindowManager = new Lang.Class({
+         let workspaceManager = global.workspace_manager;
+         let activeWorkspace = workspaceManager.get_active_workspace();
+ 
++        // If overview is visible, we would mess up the positioning of windows.
++        if (Main.overview.visible)
++            return;
++
+         if (!this._switchData)
+             this._prepareWorkspaceSwitch(activeWorkspace.index(), -1);
+ 
+@@ -1088,7 +1092,8 @@ var WindowManager = new Lang.Class({
+         if (newWs == activeWorkspace) {
+             this._switchWorkspaceCancel();
+         } else {
+-            this._switchData.gestureActivated = true;
++            if (this._switchData)
++                this._switchData.gestureActivated = true;
+             this.actionMoveWorkspace(newWs);
+         }
+     },

--- End Message ---
--- Begin Message ---
Simon McVittie:
> Control: tags 928093 - moreinfo
> Control: tags 928094 - moreinfo
> 
> On Sat, 27 Apr 2019 at 21:32:00 +0000, Niels Thykier wrote:
>> Simon McVittie:
>>> Now that gnome-shell's RC bugs are (hopefully) dealt with, I'd like
>>> to update gnome-shell with the remaining bug fixes from the upstream
>>> gnome-3-30 branch, backported from 3.32.x development.
> ...
>>> While preparing gnome-shell/3.30.2-9 (see separate unblock request) I
>>> thought I should also look into updating the closely-related mutter
>>> package from the upstream gnome-3-30 stable branch.
>>
>> Please go ahead with the upload and remove the moreinfo tag once the
>> upload is in unstable and ready to be unblocked.
> 
> Both uploaded and built on all release architectures (except
> gnome-shell:s390x, which is not a regression). Final debdiffs attached,
> piped through
> filterdiff -p1 --exclude 'debian/patches/Update-*-translation*.patch'
> in the case of gnome-shell.
> 
> Thanks,
>     smcv
> 

Unblocked both, thanks.
~Niels

--- End Message ---

Reply to: