Merge ~3v1n0/ubuntu/+source/gnome-shell:ubuntu/bionic into ~ubuntu-desktop/ubuntu/+source/gnome-shell:ubuntu/bionic

Proposed by Marco Trevisan (Treviño)
Status: Merged
Merged at revision: 2445e97209b205c44ec6cc49cdbaeb7e6db16afd
Proposed branch: ~3v1n0/ubuntu/+source/gnome-shell:ubuntu/bionic
Merge into: ~ubuntu-desktop/ubuntu/+source/gnome-shell:ubuntu/bionic
Prerequisite: ~3v1n0/ubuntu/+source/gnome-shell:upstream/3.28.x
Diff against target: 330 lines (+244/-4)
9 files modified
debian/changelog (+18/-0)
debian/control (+2/-2)
debian/control.in (+2/-2)
debian/patches/dialog-Really-set-ellipsize-mode-in-subtitle-and-body.patch (+40/-0)
debian/patches/dnd-Only-handle-touch-events-in-wayland.patch (+40/-0)
debian/patches/series (+5/-0)
debian/patches/st-widget-Add-missing-g_return_val_if_fail.patch (+32/-0)
debian/patches/switchMonitor-switch-to-next-config-upon-initial-keypress.patch (+58/-0)
debian/patches/windowManager-listen-actively-to-windows-being-destroyed-.patch (+47/-0)
Reviewer Review Type Date Requested Status
Daniel van Vugt (community) Approve
Ubuntu Desktop Pending
Review via email: mp+362055@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Status should be "Merged" now. It looks like it's already merged.

Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :

Well, I've rebased this.

So we can reuse the same PR.
This depends on https://code.launchpad.net/~3v1n0/ubuntu/+source/mutter/+git/mutter/+merge/366676

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

OK then. I can confirm that last commit 78e6f42 looks correct and is what I expected.

review: Approve
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

That last commit also looks good.

Revision history for this message
Daniel van Vugt (vanvugt) :
review: Approve
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
review: Needs Fixing
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Oops. Too late. This already merged.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
diff --git a/debian/changelog b/debian/changelog
index bfb427a..773bd14 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,21 @@
1gnome-shell (3.28.3+git20190124-0ubuntu18.04.2) UNRELEASED; urgency=medium
2
3 * d/p/switchMonitor-switch-to-next-config-upon-initial-keypress.patch
4 - Ensure switch display mode is cyclic (LP: #1772811)
5 * debian/control:
6 - Depends on mutter 3.28.3+git20190124-0ubuntu18.04.3
7 * d/p/dnd-Only-handle-touch-events-in-wayland.patch:
8 - dnd: Only handle touch events in wayland (LP: #1817020)
9 * d/p/st-widget-Add-missing-g_return_val_if_fail.patch:
10 - st-widget: Protect from NULL obj in get_theme_node (LP: #1796606)
11 * d/p/windowManager-listen-actively-to-windows-being-destroyed-.patch:
12 - windowManager: listen actively to windows being destroyed during WS switch
13 (LP: #1812527)
14 * d/p/dialog-Really-set-ellipsize-mode-in-subtitle-and-body.patch:
15 - Really set ellipsize mode in subtitle and body (LP: #1809788)
16
17 -- Marco Trevisan (Treviño) <marco@ubuntu.com> Mon, 29 Apr 2019 23:53:08 -0500
18
1gnome-shell (3.28.3+git20190124-0ubuntu18.04.1) bionic; urgency=medium19gnome-shell (3.28.3+git20190124-0ubuntu18.04.1) bionic; urgency=medium
220
3 * New git snapshot release up to commit 24cdcc56d (LP: #1811900)21 * New git snapshot release up to commit 24cdcc56d (LP: #1811900)
diff --git a/debian/control b/debian/control
index 1c0834d..7b29d44 100644
--- a/debian/control
+++ b/debian/control
@@ -83,7 +83,7 @@ Depends: ${gir:Depends},
83 gir1.2-gtk-3.0 (>= 3.16),83 gir1.2-gtk-3.0 (>= 3.16),
84 gir1.2-gweather-3.0,84 gir1.2-gweather-3.0,
85 gir1.2-ibus-1.0 (>= 1.5.2),85 gir1.2-ibus-1.0 (>= 1.5.2),
86 gir1.2-mutter-2 (>= 3.27.91),86 gir1.2-mutter-2 (>= 3.28.3+git20190124-0ubuntu18.04.3),
87 gir1.2-nm-1.0 [linux-any],87 gir1.2-nm-1.0 [linux-any],
88 gir1.2-nma-1.0 [linux-any],88 gir1.2-nma-1.0 [linux-any],
89 gir1.2-pango-1.0,89 gir1.2-pango-1.0,
@@ -96,7 +96,7 @@ Depends: ${gir:Depends},
96 gnome-shell-common (= ${source:Version}),96 gnome-shell-common (= ${source:Version}),
97 ubuntu-wallpapers,97 ubuntu-wallpapers,
98 gsettings-desktop-schemas (>= 3.21.3),98 gsettings-desktop-schemas (>= 3.21.3),
99 mutter (>= 3.27.91),99 mutter (>= 3.28.3+git20190124-0ubuntu18.04.3),
100 python3,100 python3,
101 libglib2.0-bin (>= 2.53.0),101 libglib2.0-bin (>= 2.53.0),
102Recommends: xserver-xorg-legacy,102Recommends: xserver-xorg-legacy,
diff --git a/debian/control.in b/debian/control.in
index 4224314..0b0bb20 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -79,7 +79,7 @@ Depends: ${gir:Depends},
79 gir1.2-gtk-3.0 (>= 3.16),79 gir1.2-gtk-3.0 (>= 3.16),
80 gir1.2-gweather-3.0,80 gir1.2-gweather-3.0,
81 gir1.2-ibus-1.0 (>= 1.5.2),81 gir1.2-ibus-1.0 (>= 1.5.2),
82 gir1.2-mutter-2 (>= 3.27.91),82 gir1.2-mutter-2 (>= 3.28.3+git20190124-0ubuntu18.04.3),
83 gir1.2-nm-1.0 [linux-any],83 gir1.2-nm-1.0 [linux-any],
84 gir1.2-nma-1.0 [linux-any],84 gir1.2-nma-1.0 [linux-any],
85 gir1.2-pango-1.0,85 gir1.2-pango-1.0,
@@ -92,7 +92,7 @@ Depends: ${gir:Depends},
92 gnome-shell-common (= ${source:Version}),92 gnome-shell-common (= ${source:Version}),
93 ubuntu-wallpapers,93 ubuntu-wallpapers,
94 gsettings-desktop-schemas (>= 3.21.3),94 gsettings-desktop-schemas (>= 3.21.3),
95 mutter (>= 3.27.91),95 mutter (>= 3.28.3+git20190124-0ubuntu18.04.3),
96 python3,96 python3,
97 libglib2.0-bin (>= 2.53.0),97 libglib2.0-bin (>= 2.53.0),
98Recommends: xserver-xorg-legacy,98Recommends: xserver-xorg-legacy,
diff --git a/debian/patches/dialog-Really-set-ellipsize-mode-in-subtitle-and-body.patch b/debian/patches/dialog-Really-set-ellipsize-mode-in-subtitle-and-body.patch
99new file mode 10064499new file mode 100644
index 0000000..9f1787e
--- /dev/null
+++ b/debian/patches/dialog-Really-set-ellipsize-mode-in-subtitle-and-body.patch
@@ -0,0 +1,40 @@
1From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
2Date: Fri, 3 May 2019 15:27:13 -0500
3Subject: dialog: Really set ellipsize mode in subtitle and body
4
5Dialog's subtitle or body could not be properly wrapped, while it's ellipsized
6when the text's width doesn't exceed the container size.
7
8Clutter text has an `ellipsize` property, however in dialog's subtitle and body
9we have been setting the `ellipsize-mode` property to Pango.EllipsizeMode.NONE
10that is not present in the underlying GObject.
11
12Not being an error in javascript, gjs didn't warn us about this, while at the
13same time the St.Label's default Pango.EllipsizeMode.END was used.
14
15Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/922
16
17https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/531
18
19(cherry picked from commit 3121c9aa29406ad85e949b697e90092f1fa6fc2e)
20
21Origin: https://gitlab.gnome.org/GNOME/gnome-shell/commit/5703a25e
22Bug-Ubuntu: https://bugs.launchpad.net/oem-priority/+bug/1809788
23Applied: 3.28.4
24---
25 js/ui/dialog.js | 2 +-
26 1 file changed, 1 insertion(+), 1 deletion(-)
27
28diff --git a/js/ui/dialog.js b/js/ui/dialog.js
29index 89db963..3377957 100644
30--- a/js/ui/dialog.js
31+++ b/js/ui/dialog.js
32@@ -185,7 +185,7 @@ var MessageDialogContent = new Lang.Class({
33 this[`_${prop}`].add_style_class_name(`message-dialog-${prop}`);
34 });
35
36- let textProps = { ellipsize_mode: Pango.EllipsizeMode.NONE,
37+ let textProps = { ellipsize: Pango.EllipsizeMode.NONE,
38 line_wrap: true };
39 Object.assign(this._subtitle.clutter_text, textProps);
40 Object.assign(this._body.clutter_text, textProps);
diff --git a/debian/patches/dnd-Only-handle-touch-events-in-wayland.patch b/debian/patches/dnd-Only-handle-touch-events-in-wayland.patch
0new file mode 10064441new file mode 100644
index 0000000..adb0ad8
--- /dev/null
+++ b/debian/patches/dnd-Only-handle-touch-events-in-wayland.patch
@@ -0,0 +1,40 @@
1From: Andrea Azzarone <andrea.azzarone@canonical.com>
2Date: Mon, 4 Mar 2019 16:14:22 +0000
3Subject: dnd: Only handle touch events in wayland
4
5There are serveral issues around touch passive grab and touch/pointer doubly
6handling to use these on X11, so we stick to single-touch/pointer there.
7
8Cherry picked from commit 60ccdc2deb746c0d96b0268ee5034b65478ce779
9
10Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1015
11
12Ubuntu-Bug: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1817020
13GNOME-Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1015
14Origin: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/457
15Applied-Upstream: 3.28.4
16---
17 js/ui/dnd.js | 10 ++++++++++
18 1 file changed, 10 insertions(+)
19
20diff --git a/js/ui/dnd.js b/js/ui/dnd.js
21index 9e961a1..af7a27a 100644
22--- a/js/ui/dnd.js
23+++ b/js/ui/dnd.js
24@@ -132,6 +132,16 @@ var _Draggable = new Lang.Class({
25 },
26
27 _onTouchEvent(actor, event) {
28+ // Here we only handle touch events on wayland. On X11
29+ // we do get emulated pointer events, which already works
30+ // for single-touch cases. Besides, the X11 passive touch grab
31+ // set up by Mutter will make us see first the touch events
32+ // and later the pointer events, so it will look like two
33+ // unrelated series of events, we want to avoid double handling
34+ // in these cases.
35+ if (!Meta.is_wayland_compositor())
36+ return Clutter.EVENT_PROPAGATE;
37+
38 if (event.type() != Clutter.EventType.TOUCH_BEGIN ||
39 !global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
40 return Clutter.EVENT_PROPAGATE;
diff --git a/debian/patches/series b/debian/patches/series
index 072136d..8602934 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -21,3 +21,8 @@ st-scroll-view-Remove-scrollbars-references-on-dispose.patch
21keyboard-Filter-redundant-FocusTracker-position-changed-s.patch21keyboard-Filter-redundant-FocusTracker-position-changed-s.patch
22keyboard-Listen-to-IbusPanelService-focus-in-out-to-track.patch22keyboard-Listen-to-IbusPanelService-focus-in-out-to-track.patch
23power-Label-the-PENDING_CHARGE-state-as-Not-Charging.patch23power-Label-the-PENDING_CHARGE-state-as-Not-Charging.patch
24switchMonitor-switch-to-next-config-upon-initial-keypress.patch
25dnd-Only-handle-touch-events-in-wayland.patch
26st-widget-Add-missing-g_return_val_if_fail.patch
27windowManager-listen-actively-to-windows-being-destroyed-.patch
28dialog-Really-set-ellipsize-mode-in-subtitle-and-body.patch
diff --git a/debian/patches/st-widget-Add-missing-g_return_val_if_fail.patch b/debian/patches/st-widget-Add-missing-g_return_val_if_fail.patch
24new file mode 10064429new file mode 100644
index 0000000..4af9547
--- /dev/null
+++ b/debian/patches/st-widget-Add-missing-g_return_val_if_fail.patch
@@ -0,0 +1,32 @@
1From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuellner@gnome.org>
2Date: Tue, 5 Mar 2019 19:42:01 +0100
3Subject: st-widget: Add missing g_return_val_if_fail()
4
5It's a public function, so it's good practice to sanity-check its
6input (unless disabled at compile time of course).
7
8https://gitlab.gnome.org/GNOME/gnome-shell/issues/1018
9
10Origin: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/438
11Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1796606
12---
13 src/st/st-widget.c | 6 +++++-
14 1 file changed, 5 insertions(+), 1 deletion(-)
15
16diff --git a/src/st/st-widget.c b/src/st/st-widget.c
17index 7c39b35..09a06e7 100644
18--- a/src/st/st-widget.c
19+++ b/src/st/st-widget.c
20@@ -571,7 +571,11 @@ get_root_theme_node (ClutterStage *stage)
21 StThemeNode *
22 st_widget_get_theme_node (StWidget *widget)
23 {
24- StWidgetPrivate *priv = st_widget_get_instance_private (widget);
25+ StWidgetPrivate *priv;
26+
27+ g_return_val_if_fail (ST_IS_WIDGET (widget), NULL);
28+
29+ priv = st_widget_get_instance_private (widget);
30
31 if (priv->theme_node == NULL)
32 {
diff --git a/debian/patches/switchMonitor-switch-to-next-config-upon-initial-keypress.patch b/debian/patches/switchMonitor-switch-to-next-config-upon-initial-keypress.patch
0new file mode 10064433new file mode 100644
index 0000000..4f9a217
--- /dev/null
+++ b/debian/patches/switchMonitor-switch-to-next-config-upon-initial-keypress.patch
@@ -0,0 +1,58 @@
1From: Daniel Drake <drake@endlessm.com>
2Date: Mon, 30 Jul 2018 21:17:44 -0300
3Subject: switchMonitor: switch to next config upon initial keypress
4
5In GNOME-3.24, pressing Super+P or a similar function key would cause
6a switch to the next available monitor configuration.
7
8However, in GNOME-3.26, this was reimplemented in mutter and gnome-shell
9and the behaviour is now different: pressing Super+P and releasing will
10cause no change in montor configuration[1]. In this new design you have
11to press Super+P and keep holding Super in order to keep the switcher
12open, then press P again (or use the arrow keys or mouse) to
13select the next one in the list.
14
15This is incompatible with many Asus products such as Asus X530UN, where
16pressing the presentation mode media key (Fn+F8) actually generates
17the following keypress events from the keyboard controller:
18
19Fn pressed: nothing
20F8 pressed: nothing
21F8 released: Super press, p press, p release, Super release (quick burst)
22Fn released: nothing
23
24With this firmware behaviour it's not possible to hold the keys and have
25the dialog come up so that you can select another new mode.
26
27To solve this, when the switcher is opened, select the next available
28display config by default, which is more similar to the pre-GNOME-3.26
29behaviour. Now pressing Fn+F8 on this laptop will result in the display
30mode switch taking place.
31
32[1]: The mentioned desired behaviour will at least happen after
33https://gitlab.gnome.org/GNOME/mutter/issues/281 has been fixed
34
35https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/208
36
37Ubuntu-Bug: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1772811
38Origin: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/208
39Applied-Upstream: yes, 3.30.1
40---
41 js/ui/switchMonitor.js | 4 ++--
42 1 file changed, 2 insertions(+), 2 deletions(-)
43
44diff --git a/js/ui/switchMonitor.js b/js/ui/switchMonitor.js
45index 96fb854..31b4f33 100644
46--- a/js/ui/switchMonitor.js
47+++ b/js/ui/switchMonitor.js
48@@ -49,8 +49,8 @@ var SwitchMonitorPopup = new Lang.Class({
49
50 _initialSelection() {
51 let currentConfig = Meta.MonitorManager.get().get_switch_config();
52- currentConfig %= Meta.MonitorSwitchConfigType.UNKNOWN;
53- this._select(currentConfig);
54+ let selectConfig = (currentConfig + 1) % Meta.MonitorSwitchConfigType.UNKNOWN;
55+ this._select(selectConfig);
56 },
57
58 _keyPressHandler(keysym, action) {
diff --git a/debian/patches/windowManager-listen-actively-to-windows-being-destroyed-.patch b/debian/patches/windowManager-listen-actively-to-windows-being-destroyed-.patch
0new file mode 10064459new file mode 100644
index 0000000..76cbcf0
--- /dev/null
+++ b/debian/patches/windowManager-listen-actively-to-windows-being-destroyed-.patch
@@ -0,0 +1,47 @@
1From: Carlos Garnacho <carlosg@gnome.org>
2Date: Thu, 6 Sep 2018 21:50:21 +0200
3Subject: windowManager: listen actively to windows being destroyed during WS
4 switch
5
6Prevents gjs from dealing with already dispose()d objects.
7
8Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/539
9
10(cherry-picked from b087752b5539a8cbb1d61979cb069aef8a3475be)
11
12Origin: https://gitlab.gnome.org/GNOME/gnome-shell/commit/b087752b
13Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1812527
14---
15 js/ui/windowManager.js | 12 ++++++++++--
16 1 file changed, 10 insertions(+), 2 deletions(-)
17
18diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
19index 8e7e7a6..49d7035 100644
20--- a/js/ui/windowManager.js
21+++ b/js/ui/windowManager.js
22@@ -1763,6 +1763,14 @@ var WindowManager = new Lang.Class({
23 }
24 }
25
26+ for (let i = 0; i < switchData.windows.length; i++) {
27+ let w = switchData.windows[i];
28+
29+ w.windowDestroyId = w.window.connect('destroy', () => {
30+ switchData.windows.splice(switchData.windows.indexOf(w), 1);
31+ });
32+ }
33+
34 switchData.inGroup.set_position(-xDest, -yDest);
35 switchData.inGroup.raise_top();
36
37@@ -1793,8 +1801,8 @@ var WindowManager = new Lang.Class({
38
39 for (let i = 0; i < switchData.windows.length; i++) {
40 let w = switchData.windows[i];
41- if (w.window.is_destroyed()) // Window gone
42- continue;
43+ w.window.disconnect(w.windowDestroyId);
44+
45 if (w.window.get_parent() == switchData.outGroup) {
46 w.window.reparent(w.parent);
47 w.window.hide();

Subscribers

People subscribed via source and target branches