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

Proposed by Marco Trevisan (Treviño) on 2019-01-22
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 on 2019-05-08
Ubuntu Desktop 2019-01-22 Pending
Review via email: mp+362055@code.launchpad.net
To post a comment you must log in.
Daniel van Vugt (vanvugt) wrote :

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

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

Daniel van Vugt (vanvugt) wrote :

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

review: Approve
Daniel van Vugt (vanvugt) wrote :

That last commit also looks good.

Daniel van Vugt (vanvugt) :
review: Approve
Daniel van Vugt (vanvugt) wrote :
review: Needs Fixing
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
1diff --git a/debian/changelog b/debian/changelog
2index bfb427a..773bd14 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,3 +1,21 @@
6+gnome-shell (3.28.3+git20190124-0ubuntu18.04.2) UNRELEASED; urgency=medium
7+
8+ * d/p/switchMonitor-switch-to-next-config-upon-initial-keypress.patch
9+ - Ensure switch display mode is cyclic (LP: #1772811)
10+ * debian/control:
11+ - Depends on mutter 3.28.3+git20190124-0ubuntu18.04.3
12+ * d/p/dnd-Only-handle-touch-events-in-wayland.patch:
13+ - dnd: Only handle touch events in wayland (LP: #1817020)
14+ * d/p/st-widget-Add-missing-g_return_val_if_fail.patch:
15+ - st-widget: Protect from NULL obj in get_theme_node (LP: #1796606)
16+ * d/p/windowManager-listen-actively-to-windows-being-destroyed-.patch:
17+ - windowManager: listen actively to windows being destroyed during WS switch
18+ (LP: #1812527)
19+ * d/p/dialog-Really-set-ellipsize-mode-in-subtitle-and-body.patch:
20+ - Really set ellipsize mode in subtitle and body (LP: #1809788)
21+
22+ -- Marco Trevisan (Treviño) <marco@ubuntu.com> Mon, 29 Apr 2019 23:53:08 -0500
23+
24 gnome-shell (3.28.3+git20190124-0ubuntu18.04.1) bionic; urgency=medium
25
26 * New git snapshot release up to commit 24cdcc56d (LP: #1811900)
27diff --git a/debian/control b/debian/control
28index 1c0834d..7b29d44 100644
29--- a/debian/control
30+++ b/debian/control
31@@ -83,7 +83,7 @@ Depends: ${gir:Depends},
32 gir1.2-gtk-3.0 (>= 3.16),
33 gir1.2-gweather-3.0,
34 gir1.2-ibus-1.0 (>= 1.5.2),
35- gir1.2-mutter-2 (>= 3.27.91),
36+ gir1.2-mutter-2 (>= 3.28.3+git20190124-0ubuntu18.04.3),
37 gir1.2-nm-1.0 [linux-any],
38 gir1.2-nma-1.0 [linux-any],
39 gir1.2-pango-1.0,
40@@ -96,7 +96,7 @@ Depends: ${gir:Depends},
41 gnome-shell-common (= ${source:Version}),
42 ubuntu-wallpapers,
43 gsettings-desktop-schemas (>= 3.21.3),
44- mutter (>= 3.27.91),
45+ mutter (>= 3.28.3+git20190124-0ubuntu18.04.3),
46 python3,
47 libglib2.0-bin (>= 2.53.0),
48 Recommends: xserver-xorg-legacy,
49diff --git a/debian/control.in b/debian/control.in
50index 4224314..0b0bb20 100644
51--- a/debian/control.in
52+++ b/debian/control.in
53@@ -79,7 +79,7 @@ Depends: ${gir:Depends},
54 gir1.2-gtk-3.0 (>= 3.16),
55 gir1.2-gweather-3.0,
56 gir1.2-ibus-1.0 (>= 1.5.2),
57- gir1.2-mutter-2 (>= 3.27.91),
58+ gir1.2-mutter-2 (>= 3.28.3+git20190124-0ubuntu18.04.3),
59 gir1.2-nm-1.0 [linux-any],
60 gir1.2-nma-1.0 [linux-any],
61 gir1.2-pango-1.0,
62@@ -92,7 +92,7 @@ Depends: ${gir:Depends},
63 gnome-shell-common (= ${source:Version}),
64 ubuntu-wallpapers,
65 gsettings-desktop-schemas (>= 3.21.3),
66- mutter (>= 3.27.91),
67+ mutter (>= 3.28.3+git20190124-0ubuntu18.04.3),
68 python3,
69 libglib2.0-bin (>= 2.53.0),
70 Recommends: xserver-xorg-legacy,
71diff --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
72new file mode 100644
73index 0000000..9f1787e
74--- /dev/null
75+++ b/debian/patches/dialog-Really-set-ellipsize-mode-in-subtitle-and-body.patch
76@@ -0,0 +1,40 @@
77+From: =?utf-8?b?Ik1hcmNvIFRyZXZpc2FuIChUcmV2acOxbyki?= <mail@3v1n0.net>
78+Date: Fri, 3 May 2019 15:27:13 -0500
79+Subject: dialog: Really set ellipsize mode in subtitle and body
80+
81+Dialog's subtitle or body could not be properly wrapped, while it's ellipsized
82+when the text's width doesn't exceed the container size.
83+
84+Clutter text has an `ellipsize` property, however in dialog's subtitle and body
85+we have been setting the `ellipsize-mode` property to Pango.EllipsizeMode.NONE
86+that is not present in the underlying GObject.
87+
88+Not being an error in javascript, gjs didn't warn us about this, while at the
89+same time the St.Label's default Pango.EllipsizeMode.END was used.
90+
91+Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/922
92+
93+https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/531
94+
95+(cherry picked from commit 3121c9aa29406ad85e949b697e90092f1fa6fc2e)
96+
97+Origin: https://gitlab.gnome.org/GNOME/gnome-shell/commit/5703a25e
98+Bug-Ubuntu: https://bugs.launchpad.net/oem-priority/+bug/1809788
99+Applied: 3.28.4
100+---
101+ js/ui/dialog.js | 2 +-
102+ 1 file changed, 1 insertion(+), 1 deletion(-)
103+
104+diff --git a/js/ui/dialog.js b/js/ui/dialog.js
105+index 89db963..3377957 100644
106+--- a/js/ui/dialog.js
107++++ b/js/ui/dialog.js
108+@@ -185,7 +185,7 @@ var MessageDialogContent = new Lang.Class({
109+ this[`_${prop}`].add_style_class_name(`message-dialog-${prop}`);
110+ });
111+
112+- let textProps = { ellipsize_mode: Pango.EllipsizeMode.NONE,
113++ let textProps = { ellipsize: Pango.EllipsizeMode.NONE,
114+ line_wrap: true };
115+ Object.assign(this._subtitle.clutter_text, textProps);
116+ Object.assign(this._body.clutter_text, textProps);
117diff --git a/debian/patches/dnd-Only-handle-touch-events-in-wayland.patch b/debian/patches/dnd-Only-handle-touch-events-in-wayland.patch
118new file mode 100644
119index 0000000..adb0ad8
120--- /dev/null
121+++ b/debian/patches/dnd-Only-handle-touch-events-in-wayland.patch
122@@ -0,0 +1,40 @@
123+From: Andrea Azzarone <andrea.azzarone@canonical.com>
124+Date: Mon, 4 Mar 2019 16:14:22 +0000
125+Subject: dnd: Only handle touch events in wayland
126+
127+There are serveral issues around touch passive grab and touch/pointer doubly
128+handling to use these on X11, so we stick to single-touch/pointer there.
129+
130+Cherry picked from commit 60ccdc2deb746c0d96b0268ee5034b65478ce779
131+
132+Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1015
133+
134+Ubuntu-Bug: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1817020
135+GNOME-Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1015
136+Origin: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/457
137+Applied-Upstream: 3.28.4
138+---
139+ js/ui/dnd.js | 10 ++++++++++
140+ 1 file changed, 10 insertions(+)
141+
142+diff --git a/js/ui/dnd.js b/js/ui/dnd.js
143+index 9e961a1..af7a27a 100644
144+--- a/js/ui/dnd.js
145++++ b/js/ui/dnd.js
146+@@ -132,6 +132,16 @@ var _Draggable = new Lang.Class({
147+ },
148+
149+ _onTouchEvent(actor, event) {
150++ // Here we only handle touch events on wayland. On X11
151++ // we do get emulated pointer events, which already works
152++ // for single-touch cases. Besides, the X11 passive touch grab
153++ // set up by Mutter will make us see first the touch events
154++ // and later the pointer events, so it will look like two
155++ // unrelated series of events, we want to avoid double handling
156++ // in these cases.
157++ if (!Meta.is_wayland_compositor())
158++ return Clutter.EVENT_PROPAGATE;
159++
160+ if (event.type() != Clutter.EventType.TOUCH_BEGIN ||
161+ !global.display.is_pointer_emulating_sequence(event.get_event_sequence()))
162+ return Clutter.EVENT_PROPAGATE;
163diff --git a/debian/patches/series b/debian/patches/series
164index 072136d..8602934 100644
165--- a/debian/patches/series
166+++ b/debian/patches/series
167@@ -21,3 +21,8 @@ st-scroll-view-Remove-scrollbars-references-on-dispose.patch
168 keyboard-Filter-redundant-FocusTracker-position-changed-s.patch
169 keyboard-Listen-to-IbusPanelService-focus-in-out-to-track.patch
170 power-Label-the-PENDING_CHARGE-state-as-Not-Charging.patch
171+switchMonitor-switch-to-next-config-upon-initial-keypress.patch
172+dnd-Only-handle-touch-events-in-wayland.patch
173+st-widget-Add-missing-g_return_val_if_fail.patch
174+windowManager-listen-actively-to-windows-being-destroyed-.patch
175+dialog-Really-set-ellipsize-mode-in-subtitle-and-body.patch
176diff --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
177new file mode 100644
178index 0000000..4af9547
179--- /dev/null
180+++ b/debian/patches/st-widget-Add-missing-g_return_val_if_fail.patch
181@@ -0,0 +1,32 @@
182+From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuellner@gnome.org>
183+Date: Tue, 5 Mar 2019 19:42:01 +0100
184+Subject: st-widget: Add missing g_return_val_if_fail()
185+
186+It's a public function, so it's good practice to sanity-check its
187+input (unless disabled at compile time of course).
188+
189+https://gitlab.gnome.org/GNOME/gnome-shell/issues/1018
190+
191+Origin: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/438
192+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1796606
193+---
194+ src/st/st-widget.c | 6 +++++-
195+ 1 file changed, 5 insertions(+), 1 deletion(-)
196+
197+diff --git a/src/st/st-widget.c b/src/st/st-widget.c
198+index 7c39b35..09a06e7 100644
199+--- a/src/st/st-widget.c
200++++ b/src/st/st-widget.c
201+@@ -571,7 +571,11 @@ get_root_theme_node (ClutterStage *stage)
202+ StThemeNode *
203+ st_widget_get_theme_node (StWidget *widget)
204+ {
205+- StWidgetPrivate *priv = st_widget_get_instance_private (widget);
206++ StWidgetPrivate *priv;
207++
208++ g_return_val_if_fail (ST_IS_WIDGET (widget), NULL);
209++
210++ priv = st_widget_get_instance_private (widget);
211+
212+ if (priv->theme_node == NULL)
213+ {
214diff --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
215new file mode 100644
216index 0000000..4f9a217
217--- /dev/null
218+++ b/debian/patches/switchMonitor-switch-to-next-config-upon-initial-keypress.patch
219@@ -0,0 +1,58 @@
220+From: Daniel Drake <drake@endlessm.com>
221+Date: Mon, 30 Jul 2018 21:17:44 -0300
222+Subject: switchMonitor: switch to next config upon initial keypress
223+
224+In GNOME-3.24, pressing Super+P or a similar function key would cause
225+a switch to the next available monitor configuration.
226+
227+However, in GNOME-3.26, this was reimplemented in mutter and gnome-shell
228+and the behaviour is now different: pressing Super+P and releasing will
229+cause no change in montor configuration[1]. In this new design you have
230+to press Super+P and keep holding Super in order to keep the switcher
231+open, then press P again (or use the arrow keys or mouse) to
232+select the next one in the list.
233+
234+This is incompatible with many Asus products such as Asus X530UN, where
235+pressing the presentation mode media key (Fn+F8) actually generates
236+the following keypress events from the keyboard controller:
237+
238+Fn pressed: nothing
239+F8 pressed: nothing
240+F8 released: Super press, p press, p release, Super release (quick burst)
241+Fn released: nothing
242+
243+With this firmware behaviour it's not possible to hold the keys and have
244+the dialog come up so that you can select another new mode.
245+
246+To solve this, when the switcher is opened, select the next available
247+display config by default, which is more similar to the pre-GNOME-3.26
248+behaviour. Now pressing Fn+F8 on this laptop will result in the display
249+mode switch taking place.
250+
251+[1]: The mentioned desired behaviour will at least happen after
252+https://gitlab.gnome.org/GNOME/mutter/issues/281 has been fixed
253+
254+https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/208
255+
256+Ubuntu-Bug: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1772811
257+Origin: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/208
258+Applied-Upstream: yes, 3.30.1
259+---
260+ js/ui/switchMonitor.js | 4 ++--
261+ 1 file changed, 2 insertions(+), 2 deletions(-)
262+
263+diff --git a/js/ui/switchMonitor.js b/js/ui/switchMonitor.js
264+index 96fb854..31b4f33 100644
265+--- a/js/ui/switchMonitor.js
266++++ b/js/ui/switchMonitor.js
267+@@ -49,8 +49,8 @@ var SwitchMonitorPopup = new Lang.Class({
268+
269+ _initialSelection() {
270+ let currentConfig = Meta.MonitorManager.get().get_switch_config();
271+- currentConfig %= Meta.MonitorSwitchConfigType.UNKNOWN;
272+- this._select(currentConfig);
273++ let selectConfig = (currentConfig + 1) % Meta.MonitorSwitchConfigType.UNKNOWN;
274++ this._select(selectConfig);
275+ },
276+
277+ _keyPressHandler(keysym, action) {
278diff --git a/debian/patches/windowManager-listen-actively-to-windows-being-destroyed-.patch b/debian/patches/windowManager-listen-actively-to-windows-being-destroyed-.patch
279new file mode 100644
280index 0000000..76cbcf0
281--- /dev/null
282+++ b/debian/patches/windowManager-listen-actively-to-windows-being-destroyed-.patch
283@@ -0,0 +1,47 @@
284+From: Carlos Garnacho <carlosg@gnome.org>
285+Date: Thu, 6 Sep 2018 21:50:21 +0200
286+Subject: windowManager: listen actively to windows being destroyed during WS
287+ switch
288+
289+Prevents gjs from dealing with already dispose()d objects.
290+
291+Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/539
292+
293+(cherry-picked from b087752b5539a8cbb1d61979cb069aef8a3475be)
294+
295+Origin: https://gitlab.gnome.org/GNOME/gnome-shell/commit/b087752b
296+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1812527
297+---
298+ js/ui/windowManager.js | 12 ++++++++++--
299+ 1 file changed, 10 insertions(+), 2 deletions(-)
300+
301+diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
302+index 8e7e7a6..49d7035 100644
303+--- a/js/ui/windowManager.js
304++++ b/js/ui/windowManager.js
305+@@ -1763,6 +1763,14 @@ var WindowManager = new Lang.Class({
306+ }
307+ }
308+
309++ for (let i = 0; i < switchData.windows.length; i++) {
310++ let w = switchData.windows[i];
311++
312++ w.windowDestroyId = w.window.connect('destroy', () => {
313++ switchData.windows.splice(switchData.windows.indexOf(w), 1);
314++ });
315++ }
316++
317+ switchData.inGroup.set_position(-xDest, -yDest);
318+ switchData.inGroup.raise_top();
319+
320+@@ -1793,8 +1801,8 @@ var WindowManager = new Lang.Class({
321+
322+ for (let i = 0; i < switchData.windows.length; i++) {
323+ let w = switchData.windows[i];
324+- if (w.window.is_destroyed()) // Window gone
325+- continue;
326++ w.window.disconnect(w.windowDestroyId);
327++
328+ if (w.window.get_parent() == switchData.outGroup) {
329+ w.window.reparent(w.parent);
330+ w.window.hide();

Subscribers

People subscribed via source and target branches