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

Proposed by Marco Trevisan (Treviño)
Status: Merged
Merged at revision: 4f6c773df0f7eb1027ab0bfe9d951467849353aa
Proposed branch: ~3v1n0/ubuntu/+source/gnome-shell:ubuntu/master-3.29.92
Merge into: ~ubuntu-desktop/ubuntu/+source/gnome-shell:ubuntu/master
Diff against target: 24308 lines (+5301/-4892)
97 files modified
NEWS (+34/-0)
data/gnome-shell-osk-layouts.gresource.xml (+1/-0)
data/gnome-shell-overrides-migration.desktop.in (+1/-1)
data/org.gnome.shell.gschema.xml.in (+1/-1)
data/osk-layouts/in+mal.json (+559/-0)
debian/changelog (+108/-0)
debian/control (+34/-23)
debian/control.in (+34/-23)
debian/gnome-shell-common.install (+0/-1)
debian/patches/js-main-Throw-error-if-no-valid-default-stylesheet-is-fou.patch (+1/-1)
debian/patches/optional-hot-corner.patch (+4/-4)
debian/patches/series (+5/-16)
debian/patches/sessionMode-add-support-for-debugFlags-parameter.patch (+1/-1)
debian/patches/st-scroll-view-Handle-the-case-where-scrollbars-are-NULL.patch (+6/-69)
debian/patches/st-scroll-view-Remove-scrollbars-references-on-dispose.patch (+1/-1)
debian/patches/ubuntu/desktop_detect.patch (+2/-2)
debian/patches/ubuntu/lightdm-user-switching.patch (+4/-4)
dev/null (+0/-158)
docs/reference/shell/meson.build (+1/-2)
docs/reference/st/meson.build (+1/-2)
js/extensionPrefs/main.js (+10/-9)
js/gdm/fingerprint.js (+8/-7)
js/gdm/oVirt.js (+7/-7)
js/gdm/realmd.js (+51/-48)
js/js-resources.gresource.xml (+0/-4)
js/meson.build (+14/-0)
js/misc/gnomeSession.js (+47/-44)
js/misc/inputMethod.js (+21/-4)
js/misc/loginManager.js (+50/-47)
js/misc/modemManager.js (+53/-48)
js/misc/objectManager.js (+16/-15)
js/misc/permissionStore.js (+25/-24)
js/misc/smartcardManager.js (+9/-8)
js/misc/systemActions.js (+6/-5)
js/portal-resources.gresource.xml (+7/-0)
js/portalHelper/main.js (+20/-19)
js/prefs-resources.gresource.xml (+11/-0)
js/ui/accessDialog.js (+23/-21)
js/ui/appDisplay.js (+6/-5)
js/ui/audioDeviceSelection.js (+13/-12)
js/ui/boxpointer.js (+1/-0)
js/ui/calendar.js (+13/-12)
js/ui/components/autorunManager.js (+9/-8)
js/ui/components/networkAgent.js (+6/-2)
js/ui/dash.js (+1/-0)
js/ui/dialog.js (+1/-0)
js/ui/endSessionDialog.js (+47/-43)
js/ui/keyboard.js (+6/-12)
js/ui/layout.js (+1/-0)
js/ui/magnifierDBus.js (+82/-80)
js/ui/mpris.js (+34/-31)
js/ui/notificationDaemon.js (+72/-68)
js/ui/overview.js (+2/-4)
js/ui/overviewControls.js (+17/-2)
js/ui/padOsd.js (+9/-8)
js/ui/panel.js (+5/-1)
js/ui/remoteSearch.js (+49/-47)
js/ui/runDialog.js (+8/-10)
js/ui/screencast.js (+24/-23)
js/ui/screenshot.js (+45/-44)
js/ui/scripting.js (+14/-13)
js/ui/shellDBus.js (+114/-107)
js/ui/shellMountOperation.js (+33/-32)
js/ui/status/bluetooth.js (+8/-7)
js/ui/status/brightness.js (+6/-5)
js/ui/status/location.js (+22/-20)
js/ui/status/network.js (+20/-19)
js/ui/status/nightLight.js (+7/-6)
js/ui/status/power.js (+12/-11)
js/ui/status/rfkill.js (+8/-7)
js/ui/status/thunderbolt.js (+36/-34)
js/ui/viewSelector.js (+2/-2)
js/ui/windowManager.js (+16/-15)
js/ui/workspace.js (+28/-52)
js/ui/workspaceThumbnail.js (+6/-18)
meson.build (+3/-3)
po/ca.po (+119/-111)
po/cs.po (+445/-555)
po/de.po (+234/-226)
po/en_GB.po (+238/-282)
po/fr.po (+119/-112)
po/fur.po (+120/-112)
po/id.po (+84/-76)
po/it.po (+349/-385)
po/kk.po (+233/-225)
po/ko.po (+142/-173)
po/lt.po (+138/-133)
po/pl.po (+232/-224)
po/pt_BR.po (+334/-369)
po/ro.po (+124/-116)
po/sl.po (+84/-76)
po/tr.po (+245/-236)
po/zh_TW.po (+78/-70)
src/gnome-shell-extension-prefs.c (+0/-3)
src/gnome-shell-portal-helper.c (+0/-3)
src/meson.build (+9/-12)
src/st/st-entry.c (+12/-11)
Reviewer Review Type Date Requested Status
Didier Roche-Tolomelli Approve
Review via email: mp+354045@code.launchpad.net

This proposal supersedes a proposal from 2018-08-27.

Description of the change

Merged with debian 3.29.92-1 and some cleanups and patch refresh.

To post a comment you must log in.
Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote : Posted in a previous version of this proposal

See my comment for the dep, the rest looks good to me :)

review: Needs Fixing
Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote : Posted in a previous version of this proposal

> See my comment for the dep, the rest looks good to me :)

Ack, good catch... Sorry, the merge made me loose track of it.

Thanks (and fixed)

Revision history for this message
Didier Roche-Tolomelli (didrocks) wrote :

LGTM now! Thanks for fixing the dep :)

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/NEWS b/NEWS
2index fb971a6..a279db2 100644
3--- a/NEWS
4+++ b/NEWS
5@@ -1,3 +1,37 @@
6+3.29.92
7+=======
8+* Choose some actors to cache on the GPU [Daniel; #792633]
9+* inputMethod: Hide preedit text if requested [Takao; #431]
10+* Fix forced fallback app-menus on wayland [Jonas; #276]
11+
12+Contributors:
13+ Jonas Ådahl, Takao Fujiwara, Mohammed Sadiq, Marco Trevisan (Treviño),
14+ Daniel van Vugt
15+
16+Translators:
17+ Baurzhan Muftakhidinov [kk], Kukuh Syafaat [id], Milo Casagrande [it],
18+ Changwoo Ryu [ko], Marek Cernocky [cs]
19+
20+3.29.91
21+=======
22+* Fix handling of 0/false options in ShowOSD D-Bus API [Florian; #791669]
23+* overview: Fix handling of confirmation dialogs on wayland [verdre; !180]
24+* Avoid some full relayout/redraws [Carlos; !197]
25+* Keep workspace switcher slid out when workspaces are in use [Florian; !161]
26+* Ignore auto-repeat for some keybindings [Andrea; #373]
27+* Misc. bug fixes [Carlos, Florian, Pascal; #464, !189, !191, !192, !162]
28+
29+Contributors:
30+ Andrea Azzarone, Olivier Blin, Carlos Garnacho, Florian Müllner,
31+ Pascal Nowack, verdre
32+
33+Translators:
34+ Bruno Lopes da Silva [pt_BR], Matej Urban�i� [sl], Piotr Drąg [pl],
35+ Aurimas Černius [lt], Emin Tufan Çetin [tr], Fabio Tomat [fur],
36+ Alexandre Franke [fr], Yi-Jyun Pan [zh_TW], Bernd Homuth [de],
37+ Andre Klapper [cs], Jordi Mas [ca], Daniel Șerbănescu [ro],
38+ Bruce Cowan [en_GB]
39+
40 3.29.90
41 =======
42 * Add remote access indication on wayland [Jonas; !160]
43diff --git a/data/gnome-shell-osk-layouts.gresource.xml b/data/gnome-shell-osk-layouts.gresource.xml
44index 86d6cb9..b7969c7 100644
45--- a/data/gnome-shell-osk-layouts.gresource.xml
46+++ b/data/gnome-shell-osk-layouts.gresource.xml
47@@ -22,6 +22,7 @@
48 <file>id.json</file>
49 <file>il.json</file>
50 <file>in+bolnagri.json</file>
51+ <file>in+mal.json</file>
52 <file>ir.json</file>
53 <file>is.json</file>
54 <file>it.json</file>
55diff --git a/data/gnome-shell-overrides-migration.desktop.in b/data/gnome-shell-overrides-migration.desktop.in
56index 8ef86ac..99452e6 100644
57--- a/data/gnome-shell-overrides-migration.desktop.in
58+++ b/data/gnome-shell-overrides-migration.desktop.in
59@@ -1,5 +1,5 @@
60 [Desktop Entry]
61 Type=Application
62 Name=GNOME settings overrides migration
63-NoDisplay=True
64+NoDisplay=true
65 Exec=@libexecdir@/gnome-shell-overrides-migration.sh
66diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in
67index 4ec01a4..a7251cd 100644
68--- a/data/org.gnome.shell.gschema.xml.in
69+++ b/data/org.gnome.shell.gschema.xml.in
70@@ -190,7 +190,7 @@
71 </key>
72 </schema>
73
74- <!-- unused, change 00_org.gnome.shell.gschema.override instead --!>
75+ <!-- unused, change 00_org.gnome.shell.gschema.override instead -->
76 <schema id="org.gnome.shell.overrides" path="/org/gnome/shell/overrides/"
77 gettext-domain="@GETTEXT_PACKAGE@">
78 <key name="attach-modal-dialogs" type="b">
79diff --git a/data/osk-layouts/in+mal.json b/data/osk-layouts/in+mal.json
80new file mode 100644
81index 0000000..bc153be
82--- /dev/null
83+++ b/data/osk-layouts/in+mal.json
84@@ -0,0 +1,559 @@
85+{
86+ "levels": [
87+ {
88+ "level": "",
89+ "mode": "default",
90+ "rows": [
91+ [
92+ [
93+ "െ"
94+ ],
95+ [
96+ "ൌ"
97+ ],
98+ [
99+ "ൈ"
100+ ],
101+ [
102+ "à´¾"
103+ ],
104+ [
105+ "ീ"
106+ ],
107+ [
108+ "ൂ"
109+ ],
110+ [
111+ "à´¬"
112+ ],
113+ [
114+ "à´¹"
115+ ],
116+ [
117+ "à´—"
118+ ],
119+ [
120+ "à´¦"
121+ ],
122+ [
123+ "ജ"
124+ ],
125+ [
126+ "à´¡"
127+ ],
128+ [
129+ "�"
130+ ]
131+ ],
132+ [
133+ [
134+ "ോ"
135+ ],
136+ [
137+ "േ"
138+ ],
139+ [
140+ "�"
141+ ],
142+ [
143+ "à´¿"
144+ ],
145+ [
146+ "�"
147+ ],
148+ [
149+ "à´ª"
150+ ],
151+ [
152+ "à´°"
153+ ],
154+ [
155+ "à´•"
156+ ],
157+ [
158+ "à´¤"
159+ ],
160+ [
161+ "à´š"
162+ ],
163+ [
164+ "à´Ÿ"
165+ ]
166+ ],
167+ [
168+ [
169+ "െ"
170+ ],
171+ [
172+ "à´‚"
173+ ],
174+ [
175+ "à´®",
176+ "ç"
177+ ],
178+ [
179+ "à´¨"
180+ ],
181+ [
182+ "à´µ"
183+ ],
184+ [
185+ "à´²",
186+ "ñ"
187+ ],
188+ [
189+ "à´¸"
190+ ],
191+ [
192+ "à´·"
193+ ],
194+ [
195+ "à´¯"
196+ ]
197+ ],
198+ [
199+ [
200+ ","
201+ ],
202+ [
203+ " "
204+ ],
205+ [
206+ ".",
207+ "#",
208+ "!",
209+ ",",
210+ "?",
211+ "-",
212+ ":",
213+ "'",
214+ "@"
215+ ]
216+ ]
217+ ]
218+ },
219+ {
220+ "level": "shift",
221+ "mode": "latched",
222+ "rows": [
223+ [
224+ [
225+ "à´”"
226+ ],
227+ [
228+ "à´�"
229+ ],
230+ [
231+ "à´†"
232+ ],
233+ [
234+ "à´ˆ"
235+ ],
236+ [
237+ "à´Š"
238+ ],
239+ [
240+ "à´­"
241+ ],
242+ [
243+ "à´™"
244+ ],
245+ [
246+ "à´˜"
247+ ],
248+ [
249+ "à´§"
250+ ],
251+ [
252+ "à´�"
253+ ],
254+ [
255+ "à´¢"
256+ ],
257+ [
258+ "à´ž"
259+ ]
260+ ],
261+ [
262+ [
263+ "à´“"
264+ ],
265+ [
266+ "à´�"
267+ ],
268+ [
269+ "à´…"
270+ ],
271+ [
272+ "à´‡"
273+ ],
274+ [
275+ "à´‰"
276+ ],
277+ [
278+ "à´«"
279+ ],
280+ [
281+ "à´±"
282+ ],
283+ [
284+ "à´–"
285+ ],
286+ [
287+ "à´¥"
288+ ],
289+ [
290+ "à´›"
291+ ],
292+ [
293+ "à´ "
294+ ]
295+ ],
296+ [
297+ [
298+ "à´Ž"
299+ ],
300+ [
301+ "​"
302+ ],
303+ [
304+ "à´£"
305+ ],
306+ [
307+ "à´¨"
308+ ],
309+ [
310+ "à´´"
311+ ],
312+ [
313+ "à´³"
314+ ],
315+ [
316+ "à´¶"
317+ ],
318+ [
319+ "à´·"
320+ ],
321+ [
322+ "à´¯"
323+ ]
324+ ],
325+ [
326+ [
327+ ","
328+ ],
329+ [
330+ " "
331+ ],
332+ [
333+ ".",
334+ "#",
335+ "!",
336+ ",",
337+ "?",
338+ "-",
339+ ":",
340+ "'",
341+ "@"
342+ ]
343+ ]
344+ ]
345+ },
346+ {
347+ "level": "opt",
348+ "mode": "locked",
349+ "rows": [
350+ [
351+ [
352+ "൧",
353+ "1",
354+ "¹",
355+ "½",
356+ "â…“",
357+ "¼",
358+ "â…›"
359+ ],
360+ [
361+ "൨",
362+ "2",
363+ "²",
364+ "â…”"
365+ ],
366+ [
367+ "൩",
368+ "3",
369+ "³",
370+ "¾",
371+ "⅜"
372+ ],
373+ [
374+ "൪",
375+ "4",
376+ "�"
377+ ],
378+ [
379+ "൫",
380+ "5",
381+ "â…�"
382+ ],
383+ [
384+ "൬",
385+ "6"
386+ ],
387+ [
388+ "൭",
389+ "7",
390+ "â…ž"
391+ ],
392+ [
393+ "൮",
394+ "8"
395+ ],
396+ [
397+ "൯",
398+ "9"
399+ ],
400+ [
401+ "൦",
402+ "0",
403+ "�",
404+ "∅"
405+ ]
406+ ],
407+ [
408+ [
409+ "@"
410+ ],
411+ [
412+ "#"
413+ ],
414+ [
415+ "₹",
416+ "$",
417+ "¢",
418+ "£",
419+ "€",
420+ "Â¥",
421+ "₱"
422+ ],
423+ [
424+ "%",
425+ "‰"
426+ ],
427+ [
428+ "&"
429+ ],
430+ [
431+ "-",
432+ "_",
433+ "–",
434+ "—",
435+ "·"
436+ ],
437+ [
438+ "+",
439+ "±"
440+ ],
441+ [
442+ "(",
443+ "<",
444+ "{",
445+ "["
446+ ],
447+ [
448+ ")",
449+ ">",
450+ "}",
451+ "]"
452+ ]
453+ ],
454+ [
455+ [
456+ "*",
457+ "†",
458+ "‡",
459+ "★"
460+ ],
461+ [
462+ "\"",
463+ "“",
464+ "�",
465+ "«",
466+ "»"
467+ ],
468+ [
469+ "'",
470+ "‘",
471+ "’",
472+ "‹",
473+ "›"
474+ ],
475+ [
476+ ":"
477+ ],
478+ [
479+ ";"
480+ ],
481+ [
482+ "!",
483+ "¡"
484+ ],
485+ [
486+ "?",
487+ "¿"
488+ ]
489+ ],
490+ [
491+ [
492+ "_"
493+ ],
494+ [
495+ "/"
496+ ],
497+ [
498+ " "
499+ ],
500+ [
501+ ","
502+ ],
503+ [
504+ ".",
505+ "…"
506+ ]
507+ ]
508+ ]
509+ },
510+ {
511+ "level": "opt+shift",
512+ "mode": "locked",
513+ "rows": [
514+ [
515+ [
516+ "~"
517+ ],
518+ [
519+ "`"
520+ ],
521+ [
522+ "|"
523+ ],
524+ [
525+ "•",
526+ "♪",
527+ "♥",
528+ "â™ ",
529+ "♦",
530+ "♣"
531+ ],
532+ [
533+ "√"
534+ ],
535+ [
536+ "Π",
537+ "Ï€"
538+ ],
539+ [
540+ "÷"
541+ ],
542+ [
543+ "×"
544+ ],
545+ [
546+ "¶",
547+ "§"
548+ ],
549+ [
550+ "∆"
551+ ]
552+ ],
553+ [
554+ [
555+ "£"
556+ ],
557+ [
558+ "¢"
559+ ],
560+ [
561+ "€"
562+ ],
563+ [
564+ "Â¥"
565+ ],
566+ [
567+ "^",
568+ "↑",
569+ "↓",
570+ "�",
571+ "→"
572+ ],
573+ [
574+ "°",
575+ "′",
576+ "″"
577+ ],
578+ [
579+ "=",
580+ "≠",
581+ "≈",
582+ "∞"
583+ ],
584+ [
585+ "{"
586+ ],
587+ [
588+ "}"
589+ ]
590+ ],
591+ [
592+ [
593+ "\\"
594+ ],
595+ [
596+ "©"
597+ ],
598+ [
599+ "®"
600+ ],
601+ [
602+ "â„¢"
603+ ],
604+ [
605+ "â„…"
606+ ],
607+ [
608+ "["
609+ ],
610+ [
611+ "]"
612+ ]
613+ ],
614+ [
615+ [
616+ "<",
617+ "‹",
618+ "≤",
619+ "«"
620+ ],
621+ [
622+ ">",
623+ "›",
624+ "≥",
625+ "»"
626+ ],
627+ [
628+ " "
629+ ],
630+ [
631+ ","
632+ ],
633+ [
634+ ".",
635+ "…"
636+ ]
637+ ]
638+ ]
639+ }
640+ ],
641+ "locale": "ml",
642+ "name": "Malayalam"
643+}
644diff --git a/debian/changelog b/debian/changelog
645index 4e24541..6fbc804 100644
646--- a/debian/changelog
647+++ b/debian/changelog
648@@ -1,3 +1,111 @@
649+gnome-shell (3.29.92-1ubuntu1) UNRELEASED; urgency=medium
650+
651+ * Merge with debian, remaining changes:
652+ + Replace gnome-backgrounds dep with ubuntu-wallpapers and Suggests
653+ gnome-themes-standard-data, gnome-backgrounds
654+ + Add some Recommends:
655+ - ubuntu-session (| gnome-session) to have the ubuntu session available
656+ - xserver-xorg-legacy
657+ - yaru-theme-gnome-shell for the default ubuntu theming
658+ + Update debian/gbp.conf with Ubuntu settings
659+ + gnome-shell-common.install: Install Ubuntu mode
660+ + gnome-shell-common.prerm: Remove deprecated ubuntu theme alternative
661+ + ubuntu/desktop_detect.patch:
662+ - add caching for desktop detection to avoid querying the current
663+ desktop env variable as iterate through the list each time. For the
664+ time of the Shell process, we can expect this env variable to stay
665+ stable.
666+ + ubuntu/smarter_alt_tab.patch:
667+ - quick alt-tab (without showing up the switcher) switch only between
668+ the last window of the last 2 applications to be focused instead of
669+ raising all windows of those apps.
670+ + ubuntu/lightdm-user-switching.patch:
671+ - Allow user switching when using LightDM.
672+ + ubuntu/lock_on_suspend.patch
673+ - Respect Ubuntu's lock-on-suspend setting.
674+ + ubuntu/gdm.patch
675+ - as gdm is system-wide and not session-wide, ensure gdm has an ubuntu
676+ styling by default, not impacting the gnome user session though.
677+ + ubuntu/background_login.patch
678+ - Change default background color as we modified the default GDM color
679+ for our ubuntu session. Change it as well here, still applying the
680+ background noise loading.
681+ + ubuntu/gdm_alternatives.patch
682+ - Add support for GDM3 theme alternatives
683+ + ubuntu/block_mode_extension_update.patch
684+ - Don't allow ubuntu mode extension to update
685+ + optional-hot-corner.patch
686+ - enable patch proposed by upstream developer already in package (but
687+ not in series) to add a settings for optional hot corner activation.
688+ + volume-Add-back-sound-feedback-on-scroll.patch
689+ - Fix regression causing missing feedback on volume slider scroll
690+ + st-texture-cache-Cancel-sliced-image-loading-on-target-ac.patch
691+ - Fix possible crash on cache loading
692+ + js-ui-Choose-some-actors-to-cache-on-the-GPU.patch
693+ - Improve rendering of shell elements moving rendering to GPU
694+ + main-show-an-error-message-on-gnome-shell-crash.patch,
695+ global-make-possible-to-set-debug-flags-dynamically.patch,
696+ main-increase-the-granularity-of-backtraces-in-SHELL_DEBU.patch,
697+ main-add-backtrace-crashes-all-and-backtrace-all.patch,
698+ sessionMode-add-support-for-debugFlags-parameter.patch:
699+ - Improve debug JS tracing for crash reports
700+ + st-scroll-view-Handle-the-case-where-scrollbars-are-NULL.patch,
701+ st-scroll-view-Remove-scrollbars-references-on-dispose.patch:
702+ - Fix crash on theme changes
703+ + js-main-Throw-error-if-no-valid-default-stylesheet-is-fou.patch:
704+ - Show errors if no stylesheet is found
705+ + debian/rules:
706+ - Run dh_translations and work around an issue with Rosetta and plural
707+ translations
708+ - Run dh_install with --fail-missing
709+ * Refresh patches
710+ * d/p/st-scroll-view-Handle-the-case-where-scrollbars-are-NULL.patch:
711+ - Updated as per upstream review
712+ * d/p/js-ui-Choose-some-actors-to-cache-on-the-GPU.patch:
713+ - Removed (applied upstream)
714+
715+ -- Marco Trevisan (Treviño) <marco@ubuntu.com> Thu, 30 Aug 2018 09:08:20 -0500
716+
717+gnome-shell (3.29.92-1) experimental; urgency=medium
718+
719+ * Team upload
720+
721+ [ Marco Trevisan (Treviño) ]
722+ * New upstream development release
723+ * Build-depend on mutter 3.29.92
724+
725+ [ Simon McVittie ]
726+ * Standards-Version: 4.2.1 (no changes required)
727+ * Add Breaks on older versions of extensions that needed updates for
728+ this Shell version
729+ - gnome-shell-extension-autohidetopbar (#905111)
730+ - gnome-shell-extension-caffeine (#905108)
731+ - gnome-shell-extension-dashtodock (#905106)
732+ - gnome-shell-extension-top-icons-plus (#905115)
733+ * Add Breaks on extensions that still need updates for this version,
734+ using versions that assume they will be fixed in their next NMU or MU
735+ - gnome-shell-extension-dash-to-panel (#905110)
736+ - gnome-shell-extension-multi-monitors (#905114)
737+ - gnome-shell-extension-pixelsaver (#905109)
738+ - gnome-shell-extension-taskbar (#905113)
739+ - gnome-shell-extension-workspaces-to-dock (#905112)
740+ - gnome-shell-pomodoro (#905107)
741+
742+ -- Simon McVittie <smcv@debian.org> Thu, 30 Aug 2018 09:20:35 +0100
743+
744+gnome-shell (3.29.91-1) experimental; urgency=medium
745+
746+ * Team upload
747+ * New upstream development release
748+ * Build-depend on mutter 3.29.91
749+ * Build-depend on Meson 0.47.0
750+ * Rebase patch series, dropping patches that were applied upstream
751+ * Normalize package lists with wrap-and-sort -ab
752+ * d/gnome-shell-common.install: Remove commented-out entry
753+ * Standards-Version: 4.2.0 (no changes required)
754+
755+ -- Simon McVittie <smcv@debian.org> Mon, 20 Aug 2018 21:32:20 +0100
756+
757 gnome-shell (3.29.90-2ubuntu1) cosmic; urgency=medium
758
759 * Merge with debian, remaining changes
760diff --git a/debian/control b/debian/control
761index 9e7f7c0..526848b 100644
762--- a/debian/control
763+++ b/debian/control
764@@ -9,6 +9,11 @@ Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
765 XSBC-Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
766 Uploaders: Iain Lane <laney@debian.org>, Jeremy Bicha <jbicha@debian.org>, Michael Biebl <biebl@debian.org>
767 Build-Depends: debhelper (>= 11.1.3),
768+ gir1.2-accountsservice-1.0 <!nocheck>,
769+ gir1.2-gdm-1.0 (>= 3.18.2) <!nocheck>,
770+ gir1.2-geoclue-2.0 <!nocheck>,
771+ gir1.2-gweather-3.0 (>= 3.25.91) <!nocheck>,
772+ gir1.2-rsvg-2.0 <!nocheck>,
773 gnome-control-center-dev (>= 1:3.4),
774 gnome-pkg-tools (>= 0.11),
775 gobject-introspection (>= 1.49.1),
776@@ -24,6 +29,7 @@ Build-Depends: debhelper (>= 11.1.3),
777 libgcr-3-dev (>= 3.7.5),
778 libgirepository1.0-dev (>= 1.29.15),
779 libgjs-dev (>= 1.50.2-3~),
780+ libgl1-mesa-dri <!nocheck>,
781 libglib2.0-dev (>= 2.57.2),
782 libgnome-bluetooth-dev (>= 3.9.0) [linux-any],
783 libgnome-desktop-3-dev (>= 3.27.90),
784@@ -31,7 +37,7 @@ Build-Depends: debhelper (>= 11.1.3),
785 libgstreamer1.0-dev (>= 0.11.92),
786 libgtk-3-dev (>= 3.21.6),
787 libibus-1.0-dev,
788- libmutter-3-dev (>= 3.29.90),
789+ libmutter-3-dev (>= 3.29.92),
790 libnm-dev (>= 1.10.4) [linux-any],
791 libpolkit-agent-1-dev (>= 0.100),
792 libpulse-dev (>= 2.0),
793@@ -42,19 +48,13 @@ Build-Depends: debhelper (>= 11.1.3),
794 libxfixes-dev,
795 libxml2-dev,
796 mesa-common-dev,
797- meson (>= 0.42),
798+ meson (>= 0.47.0),
799 pkg-config (>= 0.22),
800 sassc,
801- gir1.2-accountsservice-1.0 <!nocheck>,
802- gir1.2-gdm-1.0 (>= 3.18.2) <!nocheck>,
803- gir1.2-geoclue-2.0 <!nocheck>,
804- gir1.2-gweather-3.0 (>= 3.25.91) <!nocheck>,
805- gir1.2-rsvg-2.0 <!nocheck>,
806- libgl1-mesa-dri <!nocheck>,
807 xauth <!nocheck>,
808 xvfb <!nocheck>
809 Rules-Requires-Root: no
810-Standards-Version: 4.1.5
811+Standards-Version: 4.2.1
812 Homepage: https://wiki.gnome.org/Projects/GnomeShell
813 XS-Debian-Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-shell
814 XS-Debian-Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell.git -b debian/experimental
815@@ -63,24 +63,21 @@ Vcs-Browser: https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/gnome-shel
816
817 Package: gnome-shell
818 Architecture: linux-any
819-Depends: ${gir:Depends},
820- ${misc:Depends},
821- ${shlibs:Depends},
822- evolution-data-server (>= 3.17.2),
823- gir1.2-gdm-1.0 (>= 3.18.2),
824+Depends: evolution-data-server (>= 3.17.2),
825 gir1.2-accountsservice-1.0,
826 gir1.2-atspi-2.0 (>= 2.9.91),
827 gir1.2-freedesktop,
828+ gir1.2-gcr-3 (>= 3.7.5),
829 gir1.2-gdesktopenums-3.0 (>= 3.12),
830+ gir1.2-gdm-1.0 (>= 3.18.2),
831 gir1.2-geoclue-2.0,
832- gir1.2-gcr-3 (>= 3.7.5),
833 gir1.2-glib-2.0 (>= 1.56.0),
834 gir1.2-gnomebluetooth-1.0 (>= 3.12.0) [linux-any],
835 gir1.2-gnomedesktop-3.0 (>= 3.27.90),
836 gir1.2-gtk-3.0 (>= 3.16),
837 gir1.2-gweather-3.0 (>= 3.25.91),
838 gir1.2-ibus-1.0 (>= 1.5.2),
839- gir1.2-mutter-3 (>= 3.29.90),
840+ gir1.2-mutter-3 (>= 3.29.92),
841 gir1.2-nm-1.0 [linux-any],
842 gir1.2-nma-1.0 [linux-any],
843 gir1.2-pango-1.0,
844@@ -93,14 +90,17 @@ Depends: ${gir:Depends},
845 gnome-shell-common (= ${source:Version}),
846 ubuntu-wallpapers,
847 gsettings-desktop-schemas (>= 3.27.90),
848- mutter (>= 3.29.90),
849- python3,
850 libglib2.0-bin (>= 2.53.0),
851+ mutter (>= 3.29.92),
852+ python3,
853+ ${gir:Depends},
854+ ${misc:Depends},
855+ ${shlibs:Depends}
856 Recommends: bolt (>= 0.3),
857+ gdm3 (>= 3.10.0.1-3~),
858 gkbd-capplet,
859 gnome-control-center (>= 1:3.25.2),
860 gnome-user-docs,
861- gdm3 (>= 3.10.0.1-3~),
862 iio-sensor-proxy,
863 switcheroo-control,
864 ubuntu-session | gnome-session,
865@@ -113,10 +113,21 @@ Suggests: chrome-gnome-shell,
866 gir1.2-telepathylogger-0.2 (>= 0.8.0)
867 Breaks: gdm3 (<< 3.19.92),
868 gnome-session (<< 3.19),
869+ gnome-shell-extension-autohidetopbar (<< 20180511-2~),
870+ gnome-shell-extension-caffeine (<< 0~git20171229-3~),
871+ gnome-shell-extension-dash-to-panel (<< 15-1.1~),
872+ gnome-shell-extension-dashtodock (<< 64),
873+ gnome-shell-extension-multi-monitors (<< 0.00~git20171014.1.df5d6e4-1.1~),
874+ gnome-shell-extension-pixelsaver (<< 1.10+git20161217-49f47bf-1.1~),
875+ gnome-shell-extension-taskbar (<< 57.0-2.1~),
876+ gnome-shell-extension-top-icons-plus (<< 21-4~),
877 gnome-shell-extension-ubuntu-dock (<< 63ubuntu1),
878- yaru-theme (<< 18.10.1)
879+ gnome-shell-extension-workspaces-to-dock (<< 45-1.1~),
880+ gnome-shell-pomodoro (<< 0.13.4-2.1~),
881+ yaru-theme (<< 18.10.1),
882 Conflicts: gnome-screensaver (<< 3.6)
883-Provides: notification-daemon, polkit-1-auth-agent
884+Provides: notification-daemon,
885+ polkit-1-auth-agent
886 Description: graphical shell for the GNOME desktop
887 The GNOME Shell provides core interface functions like switching
888 windows, launching applications or see your notifications. It takes
889@@ -129,7 +140,7 @@ Package: gnome-shell-common
890 Architecture: all
891 Depends: ${misc:Depends}
892 Recommends: yaru-theme-gnome-shell
893-Breaks: gnome-tweak-tool (<< 3.21.91),
894- gnome-calendar (<< 3.21.4)
895+Breaks: gnome-calendar (<< 3.21.4),
896+ gnome-tweak-tool (<< 3.21.91)
897 Description: common files for the GNOME graphical shell
898 This package contains translations and data files for the GNOME shell.
899diff --git a/debian/control.in b/debian/control.in
900index 6d5740c..b8ed60e 100644
901--- a/debian/control.in
902+++ b/debian/control.in
903@@ -5,6 +5,11 @@ Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
904 XSBC-Original-Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
905 Uploaders: @GNOME_TEAM@
906 Build-Depends: debhelper (>= 11.1.3),
907+ gir1.2-accountsservice-1.0 <!nocheck>,
908+ gir1.2-gdm-1.0 (>= 3.18.2) <!nocheck>,
909+ gir1.2-geoclue-2.0 <!nocheck>,
910+ gir1.2-gweather-3.0 (>= 3.25.91) <!nocheck>,
911+ gir1.2-rsvg-2.0 <!nocheck>,
912 gnome-control-center-dev (>= 1:3.4),
913 gnome-pkg-tools (>= 0.11),
914 gobject-introspection (>= 1.49.1),
915@@ -20,6 +25,7 @@ Build-Depends: debhelper (>= 11.1.3),
916 libgcr-3-dev (>= 3.7.5),
917 libgirepository1.0-dev (>= 1.29.15),
918 libgjs-dev (>= 1.50.2-3~),
919+ libgl1-mesa-dri <!nocheck>,
920 libglib2.0-dev (>= 2.57.2),
921 libgnome-bluetooth-dev (>= 3.9.0) [linux-any],
922 libgnome-desktop-3-dev (>= 3.27.90),
923@@ -27,7 +33,7 @@ Build-Depends: debhelper (>= 11.1.3),
924 libgstreamer1.0-dev (>= 0.11.92),
925 libgtk-3-dev (>= 3.21.6),
926 libibus-1.0-dev,
927- libmutter-3-dev (>= 3.29.90),
928+ libmutter-3-dev (>= 3.29.92),
929 libnm-dev (>= 1.10.4) [linux-any],
930 libpolkit-agent-1-dev (>= 0.100),
931 libpulse-dev (>= 2.0),
932@@ -38,19 +44,13 @@ Build-Depends: debhelper (>= 11.1.3),
933 libxfixes-dev,
934 libxml2-dev,
935 mesa-common-dev,
936- meson (>= 0.42),
937+ meson (>= 0.47.0),
938 pkg-config (>= 0.22),
939 sassc,
940- gir1.2-accountsservice-1.0 <!nocheck>,
941- gir1.2-gdm-1.0 (>= 3.18.2) <!nocheck>,
942- gir1.2-geoclue-2.0 <!nocheck>,
943- gir1.2-gweather-3.0 (>= 3.25.91) <!nocheck>,
944- gir1.2-rsvg-2.0 <!nocheck>,
945- libgl1-mesa-dri <!nocheck>,
946 xauth <!nocheck>,
947 xvfb <!nocheck>
948 Rules-Requires-Root: no
949-Standards-Version: 4.1.5
950+Standards-Version: 4.2.1
951 Homepage: https://wiki.gnome.org/Projects/GnomeShell
952 XS-Debian-Vcs-Browser: https://salsa.debian.org/gnome-team/gnome-shell
953 XS-Debian-Vcs-Git: https://salsa.debian.org/gnome-team/gnome-shell.git -b debian/experimental
954@@ -59,24 +59,21 @@ Vcs-Browser: https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/gnome-shel
955
956 Package: gnome-shell
957 Architecture: linux-any
958-Depends: ${gir:Depends},
959- ${misc:Depends},
960- ${shlibs:Depends},
961- evolution-data-server (>= 3.17.2),
962- gir1.2-gdm-1.0 (>= 3.18.2),
963+Depends: evolution-data-server (>= 3.17.2),
964 gir1.2-accountsservice-1.0,
965 gir1.2-atspi-2.0 (>= 2.9.91),
966 gir1.2-freedesktop,
967+ gir1.2-gcr-3 (>= 3.7.5),
968 gir1.2-gdesktopenums-3.0 (>= 3.12),
969+ gir1.2-gdm-1.0 (>= 3.18.2),
970 gir1.2-geoclue-2.0,
971- gir1.2-gcr-3 (>= 3.7.5),
972 gir1.2-glib-2.0 (>= 1.56.0),
973 gir1.2-gnomebluetooth-1.0 (>= 3.12.0) [linux-any],
974 gir1.2-gnomedesktop-3.0 (>= 3.27.90),
975 gir1.2-gtk-3.0 (>= 3.16),
976 gir1.2-gweather-3.0 (>= 3.25.91),
977 gir1.2-ibus-1.0 (>= 1.5.2),
978- gir1.2-mutter-3 (>= 3.29.90),
979+ gir1.2-mutter-3 (>= 3.29.92),
980 gir1.2-nm-1.0 [linux-any],
981 gir1.2-nma-1.0 [linux-any],
982 gir1.2-pango-1.0,
983@@ -89,14 +86,17 @@ Depends: ${gir:Depends},
984 gnome-shell-common (= ${source:Version}),
985 ubuntu-wallpapers,
986 gsettings-desktop-schemas (>= 3.27.90),
987- mutter (>= 3.29.90),
988- python3,
989 libglib2.0-bin (>= 2.53.0),
990+ mutter (>= 3.29.92),
991+ python3,
992+ ${gir:Depends},
993+ ${misc:Depends},
994+ ${shlibs:Depends}
995 Recommends: bolt (>= 0.3),
996+ gdm3 (>= 3.10.0.1-3~),
997 gkbd-capplet,
998 gnome-control-center (>= 1:3.25.2),
999 gnome-user-docs,
1000- gdm3 (>= 3.10.0.1-3~),
1001 iio-sensor-proxy,
1002 switcheroo-control,
1003 ubuntu-session | gnome-session,
1004@@ -109,10 +109,21 @@ Suggests: chrome-gnome-shell,
1005 gir1.2-telepathylogger-0.2 (>= 0.8.0)
1006 Breaks: gdm3 (<< 3.19.92),
1007 gnome-session (<< 3.19),
1008+ gnome-shell-extension-autohidetopbar (<< 20180511-2~),
1009+ gnome-shell-extension-caffeine (<< 0~git20171229-3~),
1010+ gnome-shell-extension-dash-to-panel (<< 15-1.1~),
1011+ gnome-shell-extension-dashtodock (<< 64),
1012+ gnome-shell-extension-multi-monitors (<< 0.00~git20171014.1.df5d6e4-1.1~),
1013+ gnome-shell-extension-pixelsaver (<< 1.10+git20161217-49f47bf-1.1~),
1014+ gnome-shell-extension-taskbar (<< 57.0-2.1~),
1015+ gnome-shell-extension-top-icons-plus (<< 21-4~),
1016 gnome-shell-extension-ubuntu-dock (<< 63ubuntu1),
1017- yaru-theme (<< 18.10.1)
1018+ gnome-shell-extension-workspaces-to-dock (<< 45-1.1~),
1019+ gnome-shell-pomodoro (<< 0.13.4-2.1~),
1020+ yaru-theme (<< 18.10.1),
1021 Conflicts: gnome-screensaver (<< 3.6)
1022-Provides: notification-daemon, polkit-1-auth-agent
1023+Provides: notification-daemon,
1024+ polkit-1-auth-agent
1025 Description: graphical shell for the GNOME desktop
1026 The GNOME Shell provides core interface functions like switching
1027 windows, launching applications or see your notifications. It takes
1028@@ -125,7 +136,7 @@ Package: gnome-shell-common
1029 Architecture: all
1030 Depends: ${misc:Depends}
1031 Recommends: yaru-theme-gnome-shell
1032-Breaks: gnome-tweak-tool (<< 3.21.91),
1033- gnome-calendar (<< 3.21.4)
1034+Breaks: gnome-calendar (<< 3.21.4),
1035+ gnome-tweak-tool (<< 3.21.91)
1036 Description: common files for the GNOME graphical shell
1037 This package contains translations and data files for the GNOME shell.
1038diff --git a/debian/gnome-shell-common.install b/debian/gnome-shell-common.install
1039index 9d0117e..29e682c 100644
1040--- a/debian/gnome-shell-common.install
1041+++ b/debian/gnome-shell-common.install
1042@@ -4,7 +4,6 @@ usr/share/GConf
1043 usr/share/glib-2.0
1044 usr/share/gnome-control-center
1045 usr/share/gnome-shell
1046-#usr/share/gtk-doc
1047 usr/share/locale
1048 debian/ubuntu-session-mods/ubuntu.json usr/share/gnome-shell/modes/
1049 # install upstream theme for gdm if vanilla gnome theme is selected
1050diff --git a/debian/patches/Update-Brazilian-Portuguese-translation.patch b/debian/patches/Update-Brazilian-Portuguese-translation.patch
1051deleted file mode 100644
1052index 8f0015a..0000000
1053--- a/debian/patches/Update-Brazilian-Portuguese-translation.patch
1054+++ /dev/null
1055@@ -1,1190 +0,0 @@
1056-From: Bruno Lopes da Silva <brunolopesbldsb@gmail.com>
1057-Date: Wed, 1 Aug 2018 10:15:51 +0000
1058-Subject: Update Brazilian Portuguese translation
1059-
1060-Origin: upstream, 3.29.91, commit:eeda54f24d4f14aabedb1a2febbcee2a54db7a5d
1061----
1062- po/pt_BR.po | 703 +++++++++++++++++++++++++++++-------------------------------
1063- 1 file changed, 334 insertions(+), 369 deletions(-)
1064-
1065-diff --git a/po/pt_BR.po b/po/pt_BR.po
1066-index 4895ab9..5bb28a1 100644
1067---- a/po/pt_BR.po
1068-+++ b/po/pt_BR.po
1069-@@ -17,20 +17,21 @@
1070- # Artur de Aquino Morais <artur.morais93@outlook.com>, 2016.
1071- # Rafael Fontenelle <rafaelff@gnome.org>, 2013-2018.
1072- # Enrico Nicoletto <liverig@gmail.com>, 2013-2018.
1073-+# Bruno Lopes da Silva <brunolopesbldsb@gmail.com>, 2018.
1074- msgid ""
1075- msgstr ""
1076- "Project-Id-Version: gnome-shell\n"
1077- "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
1078--"POT-Creation-Date: 2018-04-13 18:31+0000\n"
1079--"PO-Revision-Date: 2018-05-02 15:45-0200\n"
1080--"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
1081-+"POT-Creation-Date: 2018-07-31 18:38+0000\n"
1082-+"PO-Revision-Date: 2018-08-01 06:56-0300\n"
1083-+"Last-Translator: Bruno Lopes da Silva <brunolopesbldsb@gmail.com>\n"
1084- "Language-Team: Brazilian Portuguese <gnome-pt_br-list@gnome.org>\n"
1085- "Language: pt_BR\n"
1086- "MIME-Version: 1.0\n"
1087- "Content-Type: text/plain; charset=UTF-8\n"
1088- "Content-Transfer-Encoding: 8bit\n"
1089- "Plural-Forms: nplurals=2; plural=(n > 1);\n"
1090--"X-Generator: Virtaal 1.0.0-beta1\n"
1091-+"X-Generator: Virtaal 0.7.1\n"
1092- "X-Project-Style: gnome\n"
1093-
1094- #: data/50-gnome-shell-system.xml:6
1095-@@ -74,273 +75,6 @@ msgstr "GNOME Shell"
1096- msgid "Window management and application launching"
1097- msgstr "Gerenciamento de janelas e lançador de aplicativos"
1098-
1099--#: data/org.gnome.shell.gschema.xml.in:6
1100--msgid "Enable internal tools useful for developers and testers from Alt-F2"
1101--msgstr ""
1102--"Habilitar ferramentas internas úteis para desenvolvedores e testadores a "
1103--"partir do Alt-F2"
1104--
1105--#: data/org.gnome.shell.gschema.xml.in:9
1106--msgid ""
1107--"Allows access to internal debugging and monitoring tools using the Alt-F2 "
1108--"dialog."
1109--msgstr ""
1110--"Permite acesso a ferramentas internas de depuração e monitoramento usando o "
1111--"diálogo Alt-F2."
1112--
1113--#: data/org.gnome.shell.gschema.xml.in:16
1114--msgid "UUIDs of extensions to enable"
1115--msgstr "UUIDs das extensões para habilitar"
1116--
1117--#: data/org.gnome.shell.gschema.xml.in:17
1118--msgid ""
1119--"GNOME Shell extensions have a UUID property; this key lists extensions which "
1120--"should be loaded. Any extension that wants to be loaded needs to be in this "
1121--"list. You can also manipulate this list with the EnableExtension and "
1122--"DisableExtension D-Bus methods on org.gnome.Shell."
1123--msgstr ""
1124--"As extensões do GNOME Shell possuem uma propriedade UUID; esta chave lista "
1125--"as extensões que devem ser carregadas. Qualquer extensão que quiser ser "
1126--"carregada precisa estar nesta lista. Você também pode manipular esta lista "
1127--"com os métodos do DBus EnableExtension e DisableExtensions em org.gnome."
1128--"Shell."
1129--
1130--#: data/org.gnome.shell.gschema.xml.in:26
1131--msgid "Disable user extensions"
1132--msgstr "Desabilitar extensões do usuário"
1133--
1134--#: data/org.gnome.shell.gschema.xml.in:27
1135--msgid ""
1136--"Disable all extensions the user has enabled without affecting the “enabled-"
1137--"extension� setting."
1138--msgstr ""
1139--"Desabilita todas as extensões que o usuário habilitou sem afetar a definição "
1140--"de “enabled-extension�."
1141--
1142--#: data/org.gnome.shell.gschema.xml.in:34
1143--msgid "Disables the validation of extension version compatibility"
1144--msgstr "Desabilita a validação de compatibilidade da versão da extensão"
1145--
1146--#: data/org.gnome.shell.gschema.xml.in:35
1147--msgid ""
1148--"GNOME Shell will only load extensions that claim to support the current "
1149--"running version. Enabling this option will disable this check and try to "
1150--"load all extensions regardless of the versions they claim to support."
1151--msgstr ""
1152--"O GNOME Shell somente carregará extensões que declaram possuir suporte a "
1153--"versão atual em execução. Ao habilitar esta opção, esta verificação será "
1154--"desabilitada e haverá tentativas de carregar todas as extensões independente "
1155--"das versões que estas declaram suportar."
1156--
1157--#: data/org.gnome.shell.gschema.xml.in:43
1158--msgid "List of desktop file IDs for favorite applications"
1159--msgstr ""
1160--"Lista dos IDs de arquivo de área de trabalho para os aplicativos favoritos"
1161--
1162--#: data/org.gnome.shell.gschema.xml.in:44
1163--msgid ""
1164--"The applications corresponding to these identifiers will be displayed in the "
1165--"favorites area."
1166--msgstr ""
1167--"Os aplicativos correspondentes a estes identificadores serão exibidos na "
1168--"área de favoritos."
1169--
1170--#: data/org.gnome.shell.gschema.xml.in:51
1171--msgid "App Picker View"
1172--msgstr "Visualização do seletor de aplicativos"
1173--
1174--#: data/org.gnome.shell.gschema.xml.in:52
1175--msgid "Index of the currently selected view in the application picker."
1176--msgstr ""
1177--"�ndice da visualização atualmente selecionada no seletor de aplicativos."
1178--
1179--#: data/org.gnome.shell.gschema.xml.in:58
1180--msgid "History for command (Alt-F2) dialog"
1181--msgstr "Histórico do diálogo de comandos (Alt-F2)"
1182--
1183--#. Translators: looking glass is a debugger and inspector tool, see https://wiki.gnome.org/Projects/GnomeShell/LookingGlass
1184--#: data/org.gnome.shell.gschema.xml.in:63
1185--msgid "History for the looking glass dialog"
1186--msgstr "Histórico do diálogo do shell looking glass"
1187--
1188--#: data/org.gnome.shell.gschema.xml.in:67
1189--msgid "Always show the “Log out� menu item in the user menu."
1190--msgstr "Sempre mostrar o item de menu “Encerrar sessão� no menu de usuário."
1191--
1192--#: data/org.gnome.shell.gschema.xml.in:68
1193--msgid ""
1194--"This key overrides the automatic hiding of the “Log out� menu item in single-"
1195--"user, single-session situations."
1196--msgstr ""
1197--"Essa chave sobrescreve a ocultação automática do item de menu “Encerrar "
1198--"sessão� quando houver somente um usuário, em situações de somente uma sessão."
1199--
1200--#: data/org.gnome.shell.gschema.xml.in:75
1201--msgid ""
1202--"Whether to remember password for mounting encrypted or remote filesystems"
1203--msgstr ""
1204--"Se lembra ou não as senhas para montar sistemas de arquivos criptografados "
1205--"ou remotos"
1206--
1207--#: data/org.gnome.shell.gschema.xml.in:76
1208--msgid ""
1209--"The shell will request a password when an encrypted device or a remote "
1210--"filesystem is mounted. If the password can be saved for future use a "
1211--"“Remember Password� checkbox will be present. This key sets the default "
1212--"state of the checkbox."
1213--msgstr ""
1214--"O shell irá pedir uma senha quando um dispositivo criptografado ou um "
1215--"sistema de arquivo remoto for montado. Caso a senha possa ser salva para uso "
1216--"posterior, a caixa de seleção “Lembrar senha� estará presente. Esta chave "
1217--"ajusta o estado padrão da caixa de seleção."
1218--
1219--#: data/org.gnome.shell.gschema.xml.in:85
1220--msgid ""
1221--"Whether the default Bluetooth adapter had set up devices associated to it"
1222--msgstr ""
1223--"Se o adaptador Bluetooth padrão configurou, ou não, dispositivos associados "
1224--"a ele"
1225--
1226--#: data/org.gnome.shell.gschema.xml.in:86
1227--msgid ""
1228--"The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
1229--"powered, or if there were devices set up associated with the default "
1230--"adapter. This will be reset if the default adapter is ever seen not to have "
1231--"devices associated to it."
1232--msgstr ""
1233--"O shell irá mostrar apenas um item de menu Bluetooth se um adaptador "
1234--"Bluetooth estiver ligado ou se existirem dispositivos configurados "
1235--"associados ao adaptador padrão. Isto será redefinido caso o adaptador padrão "
1236--"sempre seja visto sem possuir dispositivos associados a ele."
1237--
1238--#: data/org.gnome.shell.gschema.xml.in:101
1239--msgid "Keybinding to open the application menu"
1240--msgstr "Atalho de teclado para abrir um menu de aplicativo"
1241--
1242--#: data/org.gnome.shell.gschema.xml.in:102
1243--msgid "Keybinding to open the application menu."
1244--msgstr "Atalho de teclado para abrir um menu de aplicativo."
1245--
1246--#: data/org.gnome.shell.gschema.xml.in:108
1247--msgid "Keybinding to open the “Show Applications� view"
1248--msgstr "Atalho de teclado para abrir a visualização “Mostrar aplicativos�"
1249--
1250--#: data/org.gnome.shell.gschema.xml.in:109
1251--msgid ""
1252--"Keybinding to open the “Show Applications� view of the Activities Overview."
1253--msgstr ""
1254--"Atalho de teclado para abrir a visualização “Mostrar aplicativos� do "
1255--"panorama de atividades."
1256--
1257--#: data/org.gnome.shell.gschema.xml.in:116
1258--msgid "Keybinding to open the overview"
1259--msgstr "Atalho de teclado para abrir o panorama"
1260--
1261--#: data/org.gnome.shell.gschema.xml.in:117
1262--msgid "Keybinding to open the Activities Overview."
1263--msgstr "Atalho de teclado para abrir o panorama de atividades."
1264--
1265--#: data/org.gnome.shell.gschema.xml.in:123
1266--msgid "Keybinding to toggle the visibility of the notification list"
1267--msgstr "Atalho de teclado para alternar a visibilidade da lista de notificação"
1268--
1269--#: data/org.gnome.shell.gschema.xml.in:124
1270--msgid "Keybinding to toggle the visibility of the notification list."
1271--msgstr ""
1272--"Atalho de teclado para alternar a visibilidade da lista de notificação."
1273--
1274--#: data/org.gnome.shell.gschema.xml.in:130
1275--msgid "Keybinding to focus the active notification"
1276--msgstr "Atalho de teclado para ativar a notificação ativa"
1277--
1278--#: data/org.gnome.shell.gschema.xml.in:131
1279--msgid "Keybinding to focus the active notification."
1280--msgstr "Atalho de teclado para ativar a notificação ativa."
1281--
1282--# Tween pode significar uma contração de Between ou se referir a um termo "in-between" usado em animação gráfica. -- Enrico
1283--#: data/org.gnome.shell.gschema.xml.in:137
1284--msgid ""
1285--"Keybinding that pauses and resumes all running tweens, for debugging purposes"
1286--msgstr ""
1287--"Atalho de teclado que pausa e continua todos os intermediários em execução, "
1288--"a fim de depuração"
1289--
1290--#: data/org.gnome.shell.gschema.xml.in:146
1291--msgid "Which keyboard to use"
1292--msgstr "Qual teclado usar"
1293--
1294--#: data/org.gnome.shell.gschema.xml.in:147
1295--msgid "The type of keyboard to use."
1296--msgstr "O tipo do teclado para usar."
1297--
1298--#: data/org.gnome.shell.gschema.xml.in:158
1299--#: data/org.gnome.shell.gschema.xml.in:185
1300--msgid "Limit switcher to current workspace."
1301--msgstr "Limitar o alternador ao espaço de trabalho atual."
1302--
1303--#: data/org.gnome.shell.gschema.xml.in:159
1304--msgid ""
1305--"If true, only applications that have windows on the current workspace are "
1306--"shown in the switcher. Otherwise, all applications are included."
1307--msgstr ""
1308--"Se verdadeiro, o alternador mostrará somente os aplicativos que possuem "
1309--"janelas no espaço de trabalho atual. Caso contrário, todos os aplicativos "
1310--"serão incluídos."
1311--
1312--#: data/org.gnome.shell.gschema.xml.in:176
1313--msgid "The application icon mode."
1314--msgstr "O modo ícone do aplicativo."
1315--
1316--#: data/org.gnome.shell.gschema.xml.in:177
1317--msgid ""
1318--"Configures how the windows are shown in the switcher. Valid possibilities "
1319--"are “thumbnail-only� (shows a thumbnail of the window), “app-icon-"
1320--"only� (shows only the application icon) or “both�."
1321--msgstr ""
1322--"Configura como as janelas são mostradas no alternador. As possibilidades "
1323--"válidas são “thumbnail-only� (mostra uma miniatura da janela), “app-icon-"
1324--"only� (mostra apenas o ícone do aplicativo) ou “both�."
1325--
1326--#: data/org.gnome.shell.gschema.xml.in:186
1327--msgid ""
1328--"If true, only windows from the current workspace are shown in the switcher. "
1329--"Otherwise, all windows are included."
1330--msgstr ""
1331--"Se verdadeiro, o alternador mostrará somente as janelas do espaço de "
1332--"trabalho atual. Caso contrário, todos as janelas serão incluídas."
1333--
1334--#: data/org.gnome.shell.gschema.xml.in:197
1335--msgid "Attach modal dialog to the parent window"
1336--msgstr "Anexar diálogo modal à janela pai"
1337--
1338--#: data/org.gnome.shell.gschema.xml.in:198
1339--#: data/org.gnome.shell.gschema.xml.in:207
1340--#: data/org.gnome.shell.gschema.xml.in:215
1341--#: data/org.gnome.shell.gschema.xml.in:223
1342--#: data/org.gnome.shell.gschema.xml.in:231
1343--msgid ""
1344--"This key overrides the key in org.gnome.mutter when running GNOME Shell."
1345--msgstr ""
1346--"Esta chave sobrescreve a chave em org.gnome.mutter ao executar o Shell do "
1347--"GNOME."
1348--
1349--#: data/org.gnome.shell.gschema.xml.in:206
1350--msgid "Enable edge tiling when dropping windows on screen edges"
1351--msgstr ""
1352--"Habilitar contorno ladrilhado ao arrastar janelas sobre as bordas da tela"
1353--
1354--#: data/org.gnome.shell.gschema.xml.in:214
1355--msgid "Workspaces are managed dynamically"
1356--msgstr "Espaços de trabalho são gerenciados dinamicamente"
1357--
1358--#: data/org.gnome.shell.gschema.xml.in:222
1359--msgid "Workspaces only on primary monitor"
1360--msgstr "Espaços de trabalho apenas no monitor primário"
1361--
1362--#: data/org.gnome.shell.gschema.xml.in:230
1363--msgid "Delay focus changes in mouse mode until the pointer stops moving"
1364--msgstr "Atrasar foco altera o modo do mouse até o ponteiro parar de mover"
1365--
1366- #: data/org.gnome.Shell.PortalHelper.desktop.in.in:3
1367- msgid "Network Login"
1368- msgstr "Sessão de Rede"
1369-@@ -376,20 +110,20 @@ msgctxt "button"
1370- msgid "Sign In"
1371- msgstr "Entrar"
1372-
1373--#: js/gdm/loginDialog.js:315
1374-+#: js/gdm/loginDialog.js:319
1375- msgid "Choose Session"
1376- msgstr "Escolher sessão"
1377-
1378- #. translators: this message is shown below the user list on the
1379- #. login screen. It can be activated to reveal an entry for
1380- #. manually entering the username.
1381--#: js/gdm/loginDialog.js:458
1382-+#: js/gdm/loginDialog.js:462
1383- msgid "Not listed?"
1384- msgstr "Não está listado?"
1385-
1386- #. Translators: this message is shown below the username entry field
1387- #. to clue the user in on how to login to the local network realm
1388--#: js/gdm/loginDialog.js:887
1389-+#: js/gdm/loginDialog.js:891
1390- #, javascript-format
1391- msgid "(e.g., user or %s)"
1392- msgstr "(ex.: usuário ou %s)"
1393-@@ -397,12 +131,12 @@ msgstr "(ex.: usuário ou %s)"
1394- #. TTLS and PEAP are actually much more complicated, but this complication
1395- #. is not visible here since we only care about phase2 authentication
1396- #. (and don't even care of which one)
1397--#: js/gdm/loginDialog.js:892 js/ui/components/networkAgent.js:243
1398-+#: js/gdm/loginDialog.js:896 js/ui/components/networkAgent.js:243
1399- #: js/ui/components/networkAgent.js:261
1400- msgid "Username: "
1401- msgstr "Nome de usuário: "
1402-
1403--#: js/gdm/loginDialog.js:1228
1404-+#: js/gdm/loginDialog.js:1234
1405- msgid "Login Window"
1406- msgstr "Janela de sessão"
1407-
1408-@@ -415,7 +149,7 @@ msgstr "Erro de autenticação"
1409- #. as a cue to display our own message.
1410- #. Translators: this message is shown below the password entry field
1411- #. to indicate the user can swipe their finger instead
1412--#: js/gdm/util.js:482
1413-+#: js/gdm/util.js:485
1414- msgid "(or swipe finger)"
1415- msgstr "(ou deslize o dedo)"
1416-
1417-@@ -656,23 +390,23 @@ msgstr "Frequente"
1418- msgid "All"
1419- msgstr "Todos"
1420-
1421--#: js/ui/appDisplay.js:1886
1422-+#: js/ui/appDisplay.js:1890
1423- msgid "New Window"
1424- msgstr "Nova janela"
1425-
1426--#: js/ui/appDisplay.js:1900
1427-+#: js/ui/appDisplay.js:1904
1428- msgid "Launch using Dedicated Graphics Card"
1429- msgstr "Inicia usando placa de vídeo dedicada"
1430-
1431--#: js/ui/appDisplay.js:1927 js/ui/dash.js:285
1432-+#: js/ui/appDisplay.js:1931 js/ui/dash.js:285
1433- msgid "Remove from Favorites"
1434- msgstr "Remover dos favoritos"
1435-
1436--#: js/ui/appDisplay.js:1933
1437-+#: js/ui/appDisplay.js:1937
1438- msgid "Add to Favorites"
1439- msgstr "Adicionar aos favoritos"
1440-
1441--#: js/ui/appDisplay.js:1943
1442-+#: js/ui/appDisplay.js:1947
1443- msgid "Show Details"
1444- msgstr "Mostrar detalhes"
1445-
1446-@@ -702,7 +436,7 @@ msgstr "Fones de ouvido"
1447- msgid "Headset"
1448- msgstr "Fone de ouvido com microfone"
1449-
1450--#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:221
1451-+#: js/ui/audioDeviceSelection.js:82 js/ui/status/volume.js:255
1452- msgid "Microphone"
1453- msgstr "Microfone"
1454-
1455-@@ -714,7 +448,7 @@ msgstr "Alterar plano de fundo…"
1456- msgid "Display Settings"
1457- msgstr "Configurações de exibição"
1458-
1459--#: js/ui/backgroundMenu.js:22 js/ui/status/system.js:264
1460-+#: js/ui/backgroundMenu.js:22
1461- msgid "Settings"
1462- msgstr "Configurações"
1463-
1464-@@ -819,35 +553,35 @@ msgctxt "event list time"
1465- msgid "All Day"
1466- msgstr "Dia todo"
1467-
1468--#: js/ui/calendar.js:864
1469-+#: js/ui/calendar.js:866
1470- msgctxt "calendar heading"
1471- msgid "%A, %B %d"
1472- msgstr "%A, %d de %B"
1473-
1474--#: js/ui/calendar.js:868
1475-+#: js/ui/calendar.js:870
1476- msgctxt "calendar heading"
1477- msgid "%A, %B %d, %Y"
1478- msgstr "%A, %d de %B de %Y"
1479-
1480--#: js/ui/calendar.js:1086
1481-+#: js/ui/calendar.js:1100
1482- msgid "No Notifications"
1483- msgstr "Nenhuma notificação"
1484-
1485--#: js/ui/calendar.js:1089
1486-+#: js/ui/calendar.js:1103
1487- msgid "No Events"
1488- msgstr "Nenhum evento"
1489-
1490--#: js/ui/calendar.js:1117
1491-+#: js/ui/calendar.js:1131
1492- msgid "Clear All"
1493- msgstr "Limpar tudo"
1494-
1495- #. Translators: %s is an application name
1496--#: js/ui/closeDialog.js:44
1497-+#: js/ui/closeDialog.js:47
1498- #, javascript-format
1499- msgid "“%s� is not responding."
1500- msgstr "“%s� não está respondendo."
1501-
1502--#: js/ui/closeDialog.js:45
1503-+#: js/ui/closeDialog.js:48
1504- msgid ""
1505- "You may choose to wait a short while for it to continue or force the "
1506- "application to quit entirely."
1507-@@ -855,11 +589,11 @@ msgstr ""
1508- "Você pode escolher esperar por um breve tempo para que continue ou force o "
1509- "aplicativo a sair totalmente."
1510-
1511--#: js/ui/closeDialog.js:61
1512-+#: js/ui/closeDialog.js:64
1513- msgid "Force Quit"
1514- msgstr "Forçar sair"
1515-
1516--#: js/ui/closeDialog.js:64
1517-+#: js/ui/closeDialog.js:67
1518- msgid "Wait"
1519- msgstr "Esperar"
1520-
1521-@@ -876,7 +610,7 @@ msgstr "Unidade externa desconectada"
1522- msgid "Open with %s"
1523- msgstr "Abrir com %s"
1524-
1525--#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:295
1526-+#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:297
1527- msgid "Password:"
1528- msgstr "Senha:"
1529-
1530-@@ -913,11 +647,11 @@ msgstr "Senha da chave privada: "
1531- msgid "Service: "
1532- msgstr "Serviço: "
1533-
1534--#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
1535-+#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:664
1536- msgid "Authentication required by wireless network"
1537- msgstr "Autenticação requisitada pela rede sem fio"
1538-
1539--#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
1540-+#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:665
1541- #, javascript-format
1542- msgid ""
1543- "Passwords or encryption keys are required to access the wireless network "
1544-@@ -926,7 +660,7 @@ msgstr ""
1545- "Senhas ou chaves criptografadas são necessárias para acessar a rede sem fio "
1546- "“%s�."
1547-
1548--#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
1549-+#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:668
1550- msgid "Wired 802.1X authentication"
1551- msgstr "Autenticação 802.1X cabeada"
1552-
1553-@@ -934,15 +668,15 @@ msgstr "Autenticação 802.1X cabeada"
1554- msgid "Network name: "
1555- msgstr "Nome da rede: "
1556-
1557--#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
1558-+#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:672
1559- msgid "DSL authentication"
1560- msgstr "Autenticação DSL"
1561-
1562--#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
1563-+#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:678
1564- msgid "PIN code required"
1565- msgstr "Código PIN requisitado"
1566-
1567--#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
1568-+#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:679
1569- msgid "PIN code is needed for the mobile broadband device"
1570- msgstr "O código PIN é necessário para o dispositivo móvel de banda larga"
1571-
1572-@@ -950,17 +684,17 @@ msgstr "O código PIN é necessário para o dispositivo móvel de banda larga"
1573- msgid "PIN: "
1574- msgstr "PIN: "
1575-
1576--#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
1577-+#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:685
1578- msgid "Mobile broadband network password"
1579- msgstr "Senha da rede de banda larga móvel"
1580-
1581--#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
1582--#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
1583-+#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:669
1584-+#: js/ui/components/networkAgent.js:673 js/ui/components/networkAgent.js:686
1585- #, javascript-format
1586- msgid "A password is required to connect to “%s�."
1587- msgstr "Uma senha é necessária para se conectar a “%s�."
1588-
1589--#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1691
1590-+#: js/ui/components/networkAgent.js:653 js/ui/status/network.js:1704
1591- msgid "Network Manager"
1592- msgstr "Gerenciador de rede"
1593-
1594-@@ -980,7 +714,7 @@ msgstr "Autenticação"
1595- #. * requested authentication was not gained; this can happen
1596- #. * because of an authentication error (like invalid password),
1597- #. * for instance.
1598--#: js/ui/components/polkitAgent.js:281 js/ui/shellMountOperation.js:327
1599-+#: js/ui/components/polkitAgent.js:283 js/ui/shellMountOperation.js:327
1600- msgid "Sorry, that didn’t work. Please try again."
1601- msgstr "Desculpe, isto não funcionou. Por favor, tente novamente."
1602-
1603-@@ -1313,13 +1047,13 @@ msgid "Leave On"
1604- msgstr "Deixar ativado"
1605-
1606- #: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
1607--#: js/ui/status/network.js:1281
1608-+#: js/ui/status/network.js:1294
1609- msgid "Turn On"
1610- msgstr "Ligar"
1611-
1612- #: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
1613- #: js/ui/status/network.js:154 js/ui/status/network.js:337
1614--#: js/ui/status/network.js:1281 js/ui/status/network.js:1396
1615-+#: js/ui/status/network.js:1294 js/ui/status/network.js:1409
1616- #: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
1617- #: js/ui/status/rfkill.js:117
1618- msgid "Turn Off"
1619-@@ -1381,7 +1115,7 @@ msgstr "Ver fonte"
1620- msgid "Web Page"
1621- msgstr "Página web"
1622-
1623--#: js/ui/messageTray.js:1493
1624-+#: js/ui/messageTray.js:1495
1625- msgid "System Information"
1626- msgstr "Informações do sistema"
1627-
1628-@@ -1435,42 +1169,42 @@ msgstr "Atribuir atalho"
1629- msgid "Done"
1630- msgstr "Concluído"
1631-
1632--#: js/ui/padOsd.js:740
1633-+#: js/ui/padOsd.js:742
1634- msgid "Edit…"
1635- msgstr "Editar…"
1636-
1637--#: js/ui/padOsd.js:782 js/ui/padOsd.js:887
1638-+#: js/ui/padOsd.js:784 js/ui/padOsd.js:889
1639- msgid "None"
1640- msgstr "Nenhum"
1641-
1642--#: js/ui/padOsd.js:841
1643-+#: js/ui/padOsd.js:843
1644- msgid "Press a button to configure"
1645- msgstr "Pressione um botão para configurar"
1646-
1647--#: js/ui/padOsd.js:842
1648-+#: js/ui/padOsd.js:844
1649- msgid "Press Esc to exit"
1650- msgstr "Pressione Esc para sair"
1651-
1652--#: js/ui/padOsd.js:845
1653-+#: js/ui/padOsd.js:847
1654- msgid "Press any key to exit"
1655- msgstr "Pressione qualquer tecla para sair"
1656-
1657--#: js/ui/panel.js:355
1658-+#: js/ui/panel.js:356
1659- msgid "Quit"
1660- msgstr "Sair"
1661-
1662- #. Translators: If there is no suitable word for "Activities"
1663- #. in your language, you can use the word for "Overview".
1664--#: js/ui/panel.js:411
1665-+#: js/ui/panel.js:412
1666- msgid "Activities"
1667- msgstr "Atividades"
1668-
1669--#: js/ui/panel.js:692
1670-+#: js/ui/panel.js:693
1671- msgctxt "System menu in the top bar"
1672- msgid "System"
1673- msgstr "Sistema"
1674-
1675--#: js/ui/panel.js:811
1676-+#: js/ui/panel.js:816
1677- msgid "Top Bar"
1678- msgstr "Barra superior"
1679-
1680-@@ -1479,23 +1213,23 @@ msgstr "Barra superior"
1681- #. "ON" and "OFF") or "toggle-switch-intl" (for toggle
1682- #. switches containing "â—¯" and "|"). Other values will
1683- #. simply result in invisible toggle switches.
1684--#: js/ui/popupMenu.js:291
1685-+#: js/ui/popupMenu.js:300
1686- msgid "toggle-switch-us"
1687- msgstr "toggle-switch-intl"
1688-
1689--#: js/ui/runDialog.js:70
1690-+#: js/ui/runDialog.js:74
1691- msgid "Enter a Command"
1692- msgstr "Digite um comando"
1693-
1694--#: js/ui/runDialog.js:110 js/ui/windowMenu.js:175
1695-+#: js/ui/runDialog.js:114 js/ui/windowMenu.js:174
1696- msgid "Close"
1697- msgstr "Fechar"
1698-
1699--#: js/ui/runDialog.js:273
1700-+#: js/ui/runDialog.js:278
1701- msgid "Restart is not available on Wayland"
1702- msgstr "Reinício não está disponível no Wayland"
1703-
1704--#: js/ui/runDialog.js:278
1705-+#: js/ui/runDialog.js:283
1706- msgid "Restarting…"
1707- msgstr "Reiniciando…"
1708-
1709-@@ -1519,7 +1253,7 @@ msgid_plural "%d new notifications"
1710- msgstr[0] "%d nova notificação"
1711- msgstr[1] "%d novas notificações"
1712-
1713--#: js/ui/screenShield.js:451 js/ui/status/system.js:283
1714-+#: js/ui/screenShield.js:451 js/ui/status/system.js:294
1715- msgid "Lock"
1716- msgstr "Bloquear"
1717-
1718-@@ -1702,7 +1436,7 @@ msgid "<unknown>"
1719- msgstr "<desconhecido>"
1720-
1721- #. Translators: %s is a network identifier
1722--#: js/ui/status/network.js:441 js/ui/status/network.js:1310
1723-+#: js/ui/status/network.js:441 js/ui/status/network.js:1323
1724- #, javascript-format
1725- msgid "%s Off"
1726- msgstr "%s desligado"
1727-@@ -1729,7 +1463,7 @@ msgid "%s Disconnecting"
1728- msgstr "Desconectando de %s"
1729-
1730- #. Translators: %s is a network identifier
1731--#: js/ui/status/network.js:459 js/ui/status/network.js:1302
1732-+#: js/ui/status/network.js:459 js/ui/status/network.js:1315
1733- #, javascript-format
1734- msgid "%s Connecting"
1735- msgstr "Conectando a %s"
1736-@@ -1769,7 +1503,7 @@ msgid "Mobile Broadband Settings"
1737- msgstr "Configurações de banda larga móvel"
1738-
1739- #. Translators: %s is a network identifier
1740--#: js/ui/status/network.js:578 js/ui/status/network.js:1307
1741-+#: js/ui/status/network.js:578 js/ui/status/network.js:1320
1742- #, javascript-format
1743- msgid "%s Hardware Disabled"
1744- msgstr "Hardware de %s desabilitado"
1745-@@ -1825,81 +1559,81 @@ msgstr "Nenhuma rede"
1746- msgid "Use hardware switch to turn off"
1747- msgstr "Usar alternador de hardware para desligar"
1748-
1749--#: js/ui/status/network.js:1173
1750-+#: js/ui/status/network.js:1186
1751- msgid "Select Network"
1752- msgstr "Selecione a rede"
1753-
1754--#: js/ui/status/network.js:1179
1755-+#: js/ui/status/network.js:1192
1756- msgid "Wi-Fi Settings"
1757- msgstr "Configurações de Wi-Fi"
1758-
1759- #. Translators: %s is a network identifier
1760--#: js/ui/status/network.js:1298
1761-+#: js/ui/status/network.js:1311
1762- #, javascript-format
1763- msgid "%s Hotspot Active"
1764- msgstr "Ponto de acesso %s está ativo"
1765-
1766- #. Translators: %s is a network identifier
1767--#: js/ui/status/network.js:1313
1768-+#: js/ui/status/network.js:1326
1769- #, javascript-format
1770- msgid "%s Not Connected"
1771- msgstr "%s não está conectado"
1772-
1773--#: js/ui/status/network.js:1413
1774-+#: js/ui/status/network.js:1426
1775- msgid "connecting…"
1776- msgstr "conectando…"
1777-
1778- #. Translators: this is for network connections that require some kind of key or password
1779--#: js/ui/status/network.js:1416
1780-+#: js/ui/status/network.js:1429
1781- msgid "authentication required"
1782- msgstr "autenticação necessária"
1783-
1784--#: js/ui/status/network.js:1418
1785-+#: js/ui/status/network.js:1431
1786- msgid "connection failed"
1787- msgstr "conexão falhou"
1788-
1789--#: js/ui/status/network.js:1472
1790-+#: js/ui/status/network.js:1485
1791- msgid "VPN Settings"
1792- msgstr "Configurações de VPN"
1793-
1794--#: js/ui/status/network.js:1485
1795-+#: js/ui/status/network.js:1498
1796- msgid "VPN"
1797- msgstr "VPN"
1798-
1799--#: js/ui/status/network.js:1495
1800-+#: js/ui/status/network.js:1508
1801- msgid "VPN Off"
1802- msgstr "VPN desligada"
1803-
1804--#: js/ui/status/network.js:1559 js/ui/status/rfkill.js:93
1805-+#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
1806- msgid "Network Settings"
1807- msgstr "Configurações de rede"
1808-
1809--#: js/ui/status/network.js:1588
1810-+#: js/ui/status/network.js:1601
1811- #, javascript-format
1812- msgid "%s Wired Connection"
1813- msgid_plural "%s Wired Connections"
1814- msgstr[0] "%s conexão cabeada"
1815- msgstr[1] "%s conexões cabeadas"
1816-
1817--#: js/ui/status/network.js:1592
1818-+#: js/ui/status/network.js:1605
1819- #, javascript-format
1820- msgid "%s Wi-Fi Connection"
1821- msgid_plural "%s Wi-Fi Connections"
1822- msgstr[0] "%s conexão Wi-Fi"
1823- msgstr[1] "%s conexões Wi-Fi"
1824-
1825--#: js/ui/status/network.js:1596
1826-+#: js/ui/status/network.js:1609
1827- #, javascript-format
1828- msgid "%s Modem Connection"
1829- msgid_plural "%s Modem Connections"
1830- msgstr[0] "%s conexão por modem"
1831- msgstr[1] "%s conexões por modems"
1832-
1833--#: js/ui/status/network.js:1728
1834-+#: js/ui/status/network.js:1741
1835- msgid "Connection failed"
1836- msgstr "Falha de conexão"
1837-
1838--#: js/ui/status/network.js:1729
1839-+#: js/ui/status/network.js:1742
1840- msgid "Activation of network connection failed"
1841- msgstr "Falha ao ativar a conexão da rede"
1842-
1843-@@ -1950,6 +1684,15 @@ msgstr "%d:%02d até completamente carregada (%d %%)"
1844- msgid "%d %%"
1845- msgstr "%d %%"
1846-
1847-+#: js/ui/status/remoteAccess.js:46
1848-+msgid "Screen is Being Shared"
1849-+msgstr "A tela está sendo compartilhada"
1850-+
1851-+#: js/ui/status/remoteAccess.js:48
1852-+#| msgid "Turn Off"
1853-+msgid "Turn off"
1854-+msgstr "Desativar"
1855-+
1856- #. The menu only appears when airplane mode is on, so just
1857- #. statically build it as if it was on, rather than dynamically
1858- #. changing the menu contents.
1859-@@ -1969,28 +1712,28 @@ msgstr "Encerrar sessão"
1860- msgid "Account Settings"
1861- msgstr "Configurações de conta"
1862-
1863--#: js/ui/status/system.js:268
1864-+#: js/ui/status/system.js:279
1865- msgid "Orientation Lock"
1866- msgstr "Bloqueio de orientação"
1867-
1868--#: js/ui/status/system.js:294
1869-+#: js/ui/status/system.js:305
1870- msgid "Suspend"
1871- msgstr "Suspender"
1872-
1873--#: js/ui/status/system.js:304
1874-+#: js/ui/status/system.js:315
1875- msgid "Power Off"
1876- msgstr "Desligar"
1877-
1878--#: js/ui/status/thunderbolt.js:294
1879-+#: js/ui/status/thunderbolt.js:298
1880- msgid "Thunderbolt"
1881- msgstr "Thunderbolt"
1882-
1883- #. we are done
1884--#: js/ui/status/thunderbolt.js:350
1885-+#: js/ui/status/thunderbolt.js:354
1886- msgid "Unknown Thunderbolt device"
1887- msgstr "Dispositivo Thunderbolt desconhecido"
1888-
1889--#: js/ui/status/thunderbolt.js:351
1890-+#: js/ui/status/thunderbolt.js:355
1891- msgid ""
1892- "New device has been detected while you were away. Please disconnect and "
1893- "reconnect the device to start using it."
1894-@@ -1998,20 +1741,21 @@ msgstr ""
1895- "Um novo dispositivo foi detectado enquanto você estava ausente. Por "
1896- "gentileza, desconecte e reconecte o dispositivo para começar a usá-lo."
1897-
1898--#: js/ui/status/thunderbolt.js:356
1899-+#: js/ui/status/thunderbolt.js:360
1900- msgid "Thunderbolt authorization error"
1901- msgstr "Erro de autorização de thunderbolt"
1902-
1903--#: js/ui/status/thunderbolt.js:357
1904-+#: js/ui/status/thunderbolt.js:361
1905- #, javascript-format
1906--msgid "Could not authorize the thunderbolt device: %s"
1907--msgstr "Não foi possível autorizar o dispositivo thunderbolt: %s"
1908-+#| msgid "Could not authorize the thunderbolt device: %s"
1909-+msgid "Could not authorize the Thunderbolt device: %s"
1910-+msgstr "Não foi possível autorizar o dispositivo Thunderbolt: %s"
1911-
1912--#: js/ui/status/volume.js:128
1913-+#: js/ui/status/volume.js:135
1914- msgid "Volume changed"
1915- msgstr "Volume alterado"
1916-
1917--#: js/ui/status/volume.js:170
1918-+#: js/ui/status/volume.js:204
1919- msgid "Volume"
1920- msgstr "Volume"
1921-
1922-@@ -2066,22 +1810,22 @@ msgstr "“%s� está pronto"
1923-
1924- # Título de janela de confirmação; Se grande demais, pode ser exibida com "..."
1925- # Vide: https://bugzilla.gnome.org/show_bug.cgi?id=786331
1926--#: js/ui/windowManager.js:72
1927-+#: js/ui/windowManager.js:74
1928- msgid "Do you want to keep these display settings?"
1929- msgstr "Deseja manter essas configurações da tela?"
1930-
1931- #. Translators: this and the following message should be limited in lenght,
1932- #. to avoid ellipsizing the labels.
1933- #.
1934--#: js/ui/windowManager.js:84
1935-+#: js/ui/windowManager.js:86
1936- msgid "Revert Settings"
1937- msgstr "Reverter configurações"
1938-
1939--#: js/ui/windowManager.js:87
1940-+#: js/ui/windowManager.js:89
1941- msgid "Keep Changes"
1942- msgstr "Manter alterações"
1943-
1944--#: js/ui/windowManager.js:105
1945-+#: js/ui/windowManager.js:107
1946- #, javascript-format
1947- msgid "Settings changes will revert in %d second"
1948- msgid_plural "Settings changes will revert in %d seconds"
1949-@@ -2090,7 +1834,7 @@ msgstr[1] "Alterações nas configurações serão revertidas em %d segundos"
1950-
1951- #. Translators: This represents the size of a window. The first number is
1952- #. * the width of the window and the second is the height.
1953--#: js/ui/windowManager.js:660
1954-+#: js/ui/windowManager.js:689
1955- #, javascript-format
1956- msgid "%d × %d"
1957- msgstr "%d × %d"
1958-@@ -2143,19 +1887,19 @@ msgstr "Mover para a área de trabalho acima"
1959- msgid "Move to Workspace Down"
1960- msgstr "Mover para a área de trabalho abaixo"
1961-
1962--#: js/ui/windowMenu.js:140
1963-+#: js/ui/windowMenu.js:139
1964- msgid "Move to Monitor Up"
1965- msgstr "Mover para o monitor acima"
1966-
1967--#: js/ui/windowMenu.js:149
1968-+#: js/ui/windowMenu.js:148
1969- msgid "Move to Monitor Down"
1970- msgstr "Mover para o monitor abaixo"
1971-
1972--#: js/ui/windowMenu.js:158
1973-+#: js/ui/windowMenu.js:157
1974- msgid "Move to Monitor Left"
1975- msgstr "Mover para o monitor à esquerda"
1976-
1977--#: js/ui/windowMenu.js:167
1978-+#: js/ui/windowMenu.js:166
1979- msgid "Move to Monitor Right"
1980- msgstr "Mover para o monitor à direita"
1981-
1982-@@ -2168,29 +1912,29 @@ msgstr "Agenda do Evolution"
1983- msgid "evolution"
1984- msgstr "evolution"
1985-
1986--#: src/main.c:432
1987-+#: src/main.c:410
1988- msgid "Print version"
1989- msgstr "Versão de impressão"
1990-
1991--#: src/main.c:438
1992-+#: src/main.c:416
1993- msgid "Mode used by GDM for login screen"
1994- msgstr "Modo usado pelo GDM para a tela de início de sessão"
1995-
1996--#: src/main.c:444
1997-+#: src/main.c:422
1998- msgid "Use a specific mode, e.g. “gdm� for login screen"
1999- msgstr ""
2000- "Utilizar um modo específico, ex.: “gdm� para a tela de início de sessão"
2001-
2002--#: src/main.c:450
2003-+#: src/main.c:428
2004- msgid "List possible modes"
2005- msgstr "Listar modos possíveis"
2006-
2007--#: src/shell-app.c:270
2008-+#: src/shell-app.c:272
2009- msgctxt "program"
2010- msgid "Unknown"
2011- msgstr "Desconhecido"
2012-
2013--#: src/shell-app.c:511
2014-+#: src/shell-app.c:523
2015- #, c-format
2016- msgid "Failed to launch “%s�"
2017- msgstr "Erro ao lançar “%s�"
2018-@@ -2229,6 +1973,227 @@ msgstr[1] "%u entradas"
2019- msgid "System Sounds"
2020- msgstr "Sons do sistema"
2021-
2022-+#~ msgid "Enable internal tools useful for developers and testers from Alt-F2"
2023-+#~ msgstr ""
2024-+#~ "Habilitar ferramentas internas úteis para desenvolvedores e testadores a "
2025-+#~ "partir do Alt-F2"
2026-+
2027-+#~ msgid ""
2028-+#~ "Allows access to internal debugging and monitoring tools using the Alt-F2 "
2029-+#~ "dialog."
2030-+#~ msgstr ""
2031-+#~ "Permite acesso a ferramentas internas de depuração e monitoramento usando "
2032-+#~ "o diálogo Alt-F2."
2033-+
2034-+#~ msgid "UUIDs of extensions to enable"
2035-+#~ msgstr "UUIDs das extensões para habilitar"
2036-+
2037-+#~ msgid ""
2038-+#~ "GNOME Shell extensions have a UUID property; this key lists extensions "
2039-+#~ "which should be loaded. Any extension that wants to be loaded needs to be "
2040-+#~ "in this list. You can also manipulate this list with the EnableExtension "
2041-+#~ "and DisableExtension D-Bus methods on org.gnome.Shell."
2042-+#~ msgstr ""
2043-+#~ "As extensões do GNOME Shell possuem uma propriedade UUID; esta chave "
2044-+#~ "lista as extensões que devem ser carregadas. Qualquer extensão que quiser "
2045-+#~ "ser carregada precisa estar nesta lista. Você também pode manipular esta "
2046-+#~ "lista com os métodos do DBus EnableExtension e DisableExtensions em org."
2047-+#~ "gnome.Shell."
2048-+
2049-+#~ msgid "Disable user extensions"
2050-+#~ msgstr "Desabilitar extensões do usuário"
2051-+
2052-+#~ msgid ""
2053-+#~ "Disable all extensions the user has enabled without affecting the "
2054-+#~ "“enabled-extension� setting."
2055-+#~ msgstr ""
2056-+#~ "Desabilita todas as extensões que o usuário habilitou sem afetar a "
2057-+#~ "definição de “enabled-extension�."
2058-+
2059-+#~ msgid "Disables the validation of extension version compatibility"
2060-+#~ msgstr "Desabilita a validação de compatibilidade da versão da extensão"
2061-+
2062-+#~ msgid ""
2063-+#~ "GNOME Shell will only load extensions that claim to support the current "
2064-+#~ "running version. Enabling this option will disable this check and try to "
2065-+#~ "load all extensions regardless of the versions they claim to support."
2066-+#~ msgstr ""
2067-+#~ "O GNOME Shell somente carregará extensões que declaram possuir suporte a "
2068-+#~ "versão atual em execução. Ao habilitar esta opção, esta verificação será "
2069-+#~ "desabilitada e haverá tentativas de carregar todas as extensões "
2070-+#~ "independente das versões que estas declaram suportar."
2071-+
2072-+#~ msgid "List of desktop file IDs for favorite applications"
2073-+#~ msgstr ""
2074-+#~ "Lista dos IDs de arquivo de área de trabalho para os aplicativos favoritos"
2075-+
2076-+#~ msgid ""
2077-+#~ "The applications corresponding to these identifiers will be displayed in "
2078-+#~ "the favorites area."
2079-+#~ msgstr ""
2080-+#~ "Os aplicativos correspondentes a estes identificadores serão exibidos na "
2081-+#~ "área de favoritos."
2082-+
2083-+#~ msgid "App Picker View"
2084-+#~ msgstr "Visualização do seletor de aplicativos"
2085-+
2086-+#~ msgid "Index of the currently selected view in the application picker."
2087-+#~ msgstr ""
2088-+#~ "�ndice da visualização atualmente selecionada no seletor de aplicativos."
2089-+
2090-+#~ msgid "History for command (Alt-F2) dialog"
2091-+#~ msgstr "Histórico do diálogo de comandos (Alt-F2)"
2092-+
2093-+#~ msgid "History for the looking glass dialog"
2094-+#~ msgstr "Histórico do diálogo do shell looking glass"
2095-+
2096-+#~ msgid "Always show the “Log out� menu item in the user menu."
2097-+#~ msgstr "Sempre mostrar o item de menu “Encerrar sessão� no menu de usuário."
2098-+
2099-+#~ msgid ""
2100-+#~ "This key overrides the automatic hiding of the “Log out� menu item in "
2101-+#~ "single-user, single-session situations."
2102-+#~ msgstr ""
2103-+#~ "Essa chave sobrescreve a ocultação automática do item de menu “Encerrar "
2104-+#~ "sessão� quando houver somente um usuário, em situações de somente uma "
2105-+#~ "sessão."
2106-+
2107-+#~ msgid ""
2108-+#~ "Whether to remember password for mounting encrypted or remote filesystems"
2109-+#~ msgstr ""
2110-+#~ "Se lembra ou não as senhas para montar sistemas de arquivos "
2111-+#~ "criptografados ou remotos"
2112-+
2113-+#~ msgid ""
2114-+#~ "The shell will request a password when an encrypted device or a remote "
2115-+#~ "filesystem is mounted. If the password can be saved for future use a "
2116-+#~ "“Remember Password� checkbox will be present. This key sets the default "
2117-+#~ "state of the checkbox."
2118-+#~ msgstr ""
2119-+#~ "O shell irá pedir uma senha quando um dispositivo criptografado ou um "
2120-+#~ "sistema de arquivo remoto for montado. Caso a senha possa ser salva para "
2121-+#~ "uso posterior, a caixa de seleção “Lembrar senha� estará presente. Esta "
2122-+#~ "chave ajusta o estado padrão da caixa de seleção."
2123-+
2124-+#~ msgid ""
2125-+#~ "Whether the default Bluetooth adapter had set up devices associated to it"
2126-+#~ msgstr ""
2127-+#~ "Se o adaptador Bluetooth padrão configurou, ou não, dispositivos "
2128-+#~ "associados a ele"
2129-+
2130-+#~ msgid ""
2131-+#~ "The shell will only show a Bluetooth menu item if a Bluetooth adapter is "
2132-+#~ "powered, or if there were devices set up associated with the default "
2133-+#~ "adapter. This will be reset if the default adapter is ever seen not to "
2134-+#~ "have devices associated to it."
2135-+#~ msgstr ""
2136-+#~ "O shell irá mostrar apenas um item de menu Bluetooth se um adaptador "
2137-+#~ "Bluetooth estiver ligado ou se existirem dispositivos configurados "
2138-+#~ "associados ao adaptador padrão. Isto será redefinido caso o adaptador "
2139-+#~ "padrão sempre seja visto sem possuir dispositivos associados a ele."
2140-+
2141-+#~ msgid "Keybinding to open the application menu"
2142-+#~ msgstr "Atalho de teclado para abrir um menu de aplicativo"
2143-+
2144-+#~ msgid "Keybinding to open the application menu."
2145-+#~ msgstr "Atalho de teclado para abrir um menu de aplicativo."
2146-+
2147-+#~ msgid "Keybinding to open the “Show Applications� view"
2148-+#~ msgstr "Atalho de teclado para abrir a visualização “Mostrar aplicativos�"
2149-+
2150-+#~ msgid ""
2151-+#~ "Keybinding to open the “Show Applications� view of the Activities "
2152-+#~ "Overview."
2153-+#~ msgstr ""
2154-+#~ "Atalho de teclado para abrir a visualização “Mostrar aplicativos� do "
2155-+#~ "panorama de atividades."
2156-+
2157-+#~ msgid "Keybinding to open the overview"
2158-+#~ msgstr "Atalho de teclado para abrir o panorama"
2159-+
2160-+#~ msgid "Keybinding to open the Activities Overview."
2161-+#~ msgstr "Atalho de teclado para abrir o panorama de atividades."
2162-+
2163-+#~ msgid "Keybinding to toggle the visibility of the notification list"
2164-+#~ msgstr ""
2165-+#~ "Atalho de teclado para alternar a visibilidade da lista de notificação"
2166-+
2167-+#~ msgid "Keybinding to toggle the visibility of the notification list."
2168-+#~ msgstr ""
2169-+#~ "Atalho de teclado para alternar a visibilidade da lista de notificação."
2170-+
2171-+#~ msgid "Keybinding to focus the active notification"
2172-+#~ msgstr "Atalho de teclado para ativar a notificação ativa"
2173-+
2174-+#~ msgid "Keybinding to focus the active notification."
2175-+#~ msgstr "Atalho de teclado para ativar a notificação ativa."
2176-+
2177-+# Tween pode significar uma contração de Between ou se referir a um termo "in-between" usado em animação gráfica. -- Enrico
2178-+#~ msgid ""
2179-+#~ "Keybinding that pauses and resumes all running tweens, for debugging "
2180-+#~ "purposes"
2181-+#~ msgstr ""
2182-+#~ "Atalho de teclado que pausa e continua todos os intermediários em "
2183-+#~ "execução, a fim de depuração"
2184-+
2185-+#~ msgid "Which keyboard to use"
2186-+#~ msgstr "Qual teclado usar"
2187-+
2188-+#~ msgid "The type of keyboard to use."
2189-+#~ msgstr "O tipo do teclado para usar."
2190-+
2191-+#~ msgid "Limit switcher to current workspace."
2192-+#~ msgstr "Limitar o alternador ao espaço de trabalho atual."
2193-+
2194-+#~ msgid ""
2195-+#~ "If true, only applications that have windows on the current workspace are "
2196-+#~ "shown in the switcher. Otherwise, all applications are included."
2197-+#~ msgstr ""
2198-+#~ "Se verdadeiro, o alternador mostrará somente os aplicativos que possuem "
2199-+#~ "janelas no espaço de trabalho atual. Caso contrário, todos os aplicativos "
2200-+#~ "serão incluídos."
2201-+
2202-+#~ msgid "The application icon mode."
2203-+#~ msgstr "O modo ícone do aplicativo."
2204-+
2205-+#~ msgid ""
2206-+#~ "Configures how the windows are shown in the switcher. Valid possibilities "
2207-+#~ "are “thumbnail-only� (shows a thumbnail of the window), “app-icon-"
2208-+#~ "only� (shows only the application icon) or “both�."
2209-+#~ msgstr ""
2210-+#~ "Configura como as janelas são mostradas no alternador. As possibilidades "
2211-+#~ "válidas são “thumbnail-only� (mostra uma miniatura da janela), “app-icon-"
2212-+#~ "only� (mostra apenas o ícone do aplicativo) ou “both�."
2213-+
2214-+#~ msgid ""
2215-+#~ "If true, only windows from the current workspace are shown in the "
2216-+#~ "switcher. Otherwise, all windows are included."
2217-+#~ msgstr ""
2218-+#~ "Se verdadeiro, o alternador mostrará somente as janelas do espaço de "
2219-+#~ "trabalho atual. Caso contrário, todos as janelas serão incluídas."
2220-+
2221-+#~ msgid "Attach modal dialog to the parent window"
2222-+#~ msgstr "Anexar diálogo modal à janela pai"
2223-+
2224-+#~ msgid ""
2225-+#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
2226-+#~ msgstr ""
2227-+#~ "Esta chave sobrescreve a chave em org.gnome.mutter ao executar o Shell do "
2228-+#~ "GNOME."
2229-+
2230-+#~ msgid "Enable edge tiling when dropping windows on screen edges"
2231-+#~ msgstr ""
2232-+#~ "Habilitar contorno ladrilhado ao arrastar janelas sobre as bordas da tela"
2233-+
2234-+#~ msgid "Workspaces are managed dynamically"
2235-+#~ msgstr "Espaços de trabalho são gerenciados dinamicamente"
2236-+
2237-+#~ msgid "Workspaces only on primary monitor"
2238-+#~ msgstr "Espaços de trabalho apenas no monitor primário"
2239-+
2240-+#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
2241-+#~ msgstr "Atrasar foco altera o modo do mouse até o ponteiro parar de mover"
2242-+
2243- #~| msgid "Power Off"
2244- #~ msgctxt "search-result"
2245- #~ msgid "Power off"
2246diff --git a/debian/patches/Updated-Slovenian-translation.patch b/debian/patches/Updated-Slovenian-translation.patch
2247deleted file mode 100644
2248index 9f8881d..0000000
2249--- a/debian/patches/Updated-Slovenian-translation.patch
2250+++ /dev/null
2251@@ -1,545 +0,0 @@
2252-From: =?utf-8?q?Matej_Urban=C4=8Di=C4=8D?= <mateju@svn.gnome.org>
2253-Date: Fri, 3 Aug 2018 11:17:49 +0200
2254-Subject: Updated Slovenian translation
2255-
2256-Origin: upstream, 3.29.91, commit:6b41f823464380c2018f3431edf61bc6ff11354f
2257----
2258- po/sl.po | 160 +++++++++++++++++++++++++++++++++------------------------------
2259- 1 file changed, 84 insertions(+), 76 deletions(-)
2260-
2261-diff --git a/po/sl.po b/po/sl.po
2262-index b943c4a..2d37f35 100644
2263---- a/po/sl.po
2264-+++ b/po/sl.po
2265-@@ -8,8 +8,8 @@ msgid ""
2266- msgstr ""
2267- "Project-Id-Version: gnome-shell master\n"
2268- "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell/issues\n"
2269--"POT-Creation-Date: 2018-04-17 15:11+0000\n"
2270--"PO-Revision-Date: 2018-04-17 18:32+0200\n"
2271-+"POT-Creation-Date: 2018-07-30 17:00+0000\n"
2272-+"PO-Revision-Date: 2018-07-30 22:14+0200\n"
2273- "Last-Translator: Matej Urban�i� <mateju@svn.gnome.org>\n"
2274- "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
2275- "Language: sl\n"
2276-@@ -352,20 +352,20 @@ msgctxt "button"
2277- msgid "Sign In"
2278- msgstr "Prijava"
2279-
2280--#: js/gdm/loginDialog.js:315
2281-+#: js/gdm/loginDialog.js:319
2282- msgid "Choose Session"
2283- msgstr "Izbor seje"
2284-
2285- #. translators: this message is shown below the user list on the
2286- #. login screen. It can be activated to reveal an entry for
2287- #. manually entering the username.
2288--#: js/gdm/loginDialog.js:458
2289-+#: js/gdm/loginDialog.js:462
2290- msgid "Not listed?"
2291- msgstr "Ali uporabniškega imena ni na seznamu?"
2292-
2293- #. Translators: this message is shown below the username entry field
2294- #. to clue the user in on how to login to the local network realm
2295--#: js/gdm/loginDialog.js:887
2296-+#: js/gdm/loginDialog.js:891
2297- #, javascript-format
2298- msgid "(e.g., user or %s)"
2299- msgstr "(na primer, uporabnika ali %s)"
2300-@@ -373,12 +373,12 @@ msgstr "(na primer, uporabnika ali %s)"
2301- #. TTLS and PEAP are actually much more complicated, but this complication
2302- #. is not visible here since we only care about phase2 authentication
2303- #. (and don't even care of which one)
2304--#: js/gdm/loginDialog.js:892 js/ui/components/networkAgent.js:243
2305-+#: js/gdm/loginDialog.js:896 js/ui/components/networkAgent.js:243
2306- #: js/ui/components/networkAgent.js:261
2307- msgid "Username: "
2308- msgstr "Uporabniško ime: "
2309-
2310--#: js/gdm/loginDialog.js:1228
2311-+#: js/gdm/loginDialog.js:1234
2312- msgid "Login Window"
2313- msgstr "Prijavno okno"
2314-
2315-@@ -391,7 +391,7 @@ msgstr "Napaka overitve"
2316- #. as a cue to display our own message.
2317- #. Translators: this message is shown below the password entry field
2318- #. to indicate the user can swipe their finger instead
2319--#: js/gdm/util.js:482
2320-+#: js/gdm/util.js:485
2321- msgid "(or swipe finger)"
2322- msgstr "(ali pa povlecite prst)"
2323-
2324-@@ -643,23 +643,23 @@ msgstr "Pogosti"
2325- msgid "All"
2326- msgstr "Vsi"
2327-
2328--#: js/ui/appDisplay.js:1886
2329-+#: js/ui/appDisplay.js:1890
2330- msgid "New Window"
2331- msgstr "Novo okno"
2332-
2333--#: js/ui/appDisplay.js:1900
2334-+#: js/ui/appDisplay.js:1904
2335- msgid "Launch using Dedicated Graphics Card"
2336- msgstr "Zaženi z uporabo dolo�ene grafi�ne kartice"
2337-
2338--#: js/ui/appDisplay.js:1927 js/ui/dash.js:285
2339-+#: js/ui/appDisplay.js:1931 js/ui/dash.js:285
2340- msgid "Remove from Favorites"
2341- msgstr "Odstrani iz priljubljenih"
2342-
2343--#: js/ui/appDisplay.js:1933
2344-+#: js/ui/appDisplay.js:1937
2345- msgid "Add to Favorites"
2346- msgstr "Dodaj med priljubljene"
2347-
2348--#: js/ui/appDisplay.js:1943
2349-+#: js/ui/appDisplay.js:1947
2350- msgid "Show Details"
2351- msgstr "Pokaži besedilo"
2352-
2353-@@ -806,35 +806,35 @@ msgctxt "event list time"
2354- msgid "All Day"
2355- msgstr "Celodnevno"
2356-
2357--#: js/ui/calendar.js:864
2358-+#: js/ui/calendar.js:866
2359- msgctxt "calendar heading"
2360- msgid "%A, %B %d"
2361- msgstr "%A, %d. %m."
2362-
2363--#: js/ui/calendar.js:868
2364-+#: js/ui/calendar.js:870
2365- msgctxt "calendar heading"
2366- msgid "%A, %B %d, %Y"
2367- msgstr "%A, %d %B %Y"
2368-
2369--#: js/ui/calendar.js:1086
2370-+#: js/ui/calendar.js:1100
2371- msgid "No Notifications"
2372- msgstr "Ni obvestil"
2373-
2374--#: js/ui/calendar.js:1089
2375-+#: js/ui/calendar.js:1103
2376- msgid "No Events"
2377- msgstr "Ni dogodkov"
2378-
2379--#: js/ui/calendar.js:1117
2380-+#: js/ui/calendar.js:1131
2381- msgid "Clear All"
2382- msgstr "Po�isti vse"
2383-
2384- #. Translators: %s is an application name
2385--#: js/ui/closeDialog.js:44
2386-+#: js/ui/closeDialog.js:47
2387- #, javascript-format
2388- msgid "“%s� is not responding."
2389- msgstr "Program »%s« se ne odziva."
2390-
2391--#: js/ui/closeDialog.js:45
2392-+#: js/ui/closeDialog.js:48
2393- msgid ""
2394- "You may choose to wait a short while for it to continue or force the "
2395- "application to quit entirely."
2396-@@ -842,11 +842,11 @@ msgstr ""
2397- "Lahko po�akate, �e se program morda za�ne spet odzivati, lahko pa vsilite "
2398- "kon�anje delovanja."
2399-
2400--#: js/ui/closeDialog.js:61
2401-+#: js/ui/closeDialog.js:64
2402- msgid "Force Quit"
2403- msgstr "Vsili kon�anje"
2404-
2405--#: js/ui/closeDialog.js:64
2406-+#: js/ui/closeDialog.js:67
2407- msgid "Wait"
2408- msgstr "Po�akaj"
2409-
2410-@@ -863,7 +863,7 @@ msgstr "Zunanji pogon je odklopljen"
2411- msgid "Open with %s"
2412- msgstr "Odpri s programom %s"
2413-
2414--#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:295
2415-+#: js/ui/components/keyring.js:107 js/ui/components/polkitAgent.js:297
2416- msgid "Password:"
2417- msgstr "Geslo:"
2418-
2419-@@ -900,11 +900,11 @@ msgstr "Geslo zasebnega klju�a: "
2420- msgid "Service: "
2421- msgstr "Storitev: "
2422-
2423--#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:659
2424-+#: js/ui/components/networkAgent.js:292 js/ui/components/networkAgent.js:664
2425- msgid "Authentication required by wireless network"
2426- msgstr "Zahtevana overitev za brezži�no omrežje"
2427-
2428--#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:660
2429-+#: js/ui/components/networkAgent.js:293 js/ui/components/networkAgent.js:665
2430- #, javascript-format
2431- msgid ""
2432- "Passwords or encryption keys are required to access the wireless network "
2433-@@ -913,7 +913,7 @@ msgstr ""
2434- "Za povezavo v brezži�no omrežje »%s« je zahtevano geslo oziroma šifrirni "
2435- "klju�."
2436-
2437--#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:663
2438-+#: js/ui/components/networkAgent.js:297 js/ui/components/networkAgent.js:668
2439- msgid "Wired 802.1X authentication"
2440- msgstr "Ži�na overitev 802.1X"
2441-
2442-@@ -921,15 +921,15 @@ msgstr "Ži�na overitev 802.1X"
2443- msgid "Network name: "
2444- msgstr "Naziv omrežja: "
2445-
2446--#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:667
2447-+#: js/ui/components/networkAgent.js:304 js/ui/components/networkAgent.js:672
2448- msgid "DSL authentication"
2449- msgstr "Overitev DSL"
2450-
2451--#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:673
2452-+#: js/ui/components/networkAgent.js:311 js/ui/components/networkAgent.js:678
2453- msgid "PIN code required"
2454- msgstr "Zahtevana koda PIN"
2455-
2456--#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:674
2457-+#: js/ui/components/networkAgent.js:312 js/ui/components/networkAgent.js:679
2458- msgid "PIN code is needed for the mobile broadband device"
2459- msgstr "Za napravo mobilnega Å¡irokopasovnega dostopa je zahtevana koda PIN."
2460-
2461-@@ -937,17 +937,17 @@ msgstr "Za napravo mobilnega Å¡irokopasovnega dostopa je zahtevana koda PIN."
2462- msgid "PIN: "
2463- msgstr "Koda PIN: "
2464-
2465--#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:680
2466-+#: js/ui/components/networkAgent.js:320 js/ui/components/networkAgent.js:685
2467- msgid "Mobile broadband network password"
2468- msgstr "Geslo mobilnega Å¡irokopasovnega dostopa"
2469-
2470--#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:664
2471--#: js/ui/components/networkAgent.js:668 js/ui/components/networkAgent.js:681
2472-+#: js/ui/components/networkAgent.js:321 js/ui/components/networkAgent.js:669
2473-+#: js/ui/components/networkAgent.js:673 js/ui/components/networkAgent.js:686
2474- #, javascript-format
2475- msgid "A password is required to connect to “%s�."
2476- msgstr "Za povezavo z omrežjem »%s« je zahtevano geslo."
2477-
2478--#: js/ui/components/networkAgent.js:648 js/ui/status/network.js:1691
2479-+#: js/ui/components/networkAgent.js:653 js/ui/status/network.js:1704
2480- msgid "Network Manager"
2481- msgstr "Upravljalnik omrežij"
2482-
2483-@@ -967,7 +967,7 @@ msgstr "Overi"
2484- #. * requested authentication was not gained; this can happen
2485- #. * because of an authentication error (like invalid password),
2486- #. * for instance.
2487--#: js/ui/components/polkitAgent.js:281 js/ui/shellMountOperation.js:327
2488-+#: js/ui/components/polkitAgent.js:283 js/ui/shellMountOperation.js:327
2489- msgid "Sorry, that didn’t work. Please try again."
2490- msgstr "Overitev je spodletela.. Poskusite znova."
2491-
2492-@@ -1309,13 +1309,13 @@ msgid "Leave On"
2493- msgstr "Pusti omogo�eno"
2494-
2495- #: js/ui/kbdA11yDialog.js:59 js/ui/status/bluetooth.js:143
2496--#: js/ui/status/network.js:1281
2497-+#: js/ui/status/network.js:1294
2498- msgid "Turn On"
2499- msgstr "Omogo�i"
2500-
2501- #: js/ui/kbdA11yDialog.js:67 js/ui/status/bluetooth.js:143
2502- #: js/ui/status/network.js:154 js/ui/status/network.js:337
2503--#: js/ui/status/network.js:1281 js/ui/status/network.js:1396
2504-+#: js/ui/status/network.js:1294 js/ui/status/network.js:1409
2505- #: js/ui/status/nightLight.js:47 js/ui/status/rfkill.js:90
2506- #: js/ui/status/rfkill.js:117
2507- msgid "Turn Off"
2508-@@ -1377,7 +1377,7 @@ msgstr "Poglej vir"
2509- msgid "Web Page"
2510- msgstr "Spletna stran"
2511-
2512--#: js/ui/messageTray.js:1493
2513-+#: js/ui/messageTray.js:1495
2514- msgid "System Information"
2515- msgstr "Podrobnosti sistema"
2516-
2517-@@ -1451,22 +1451,22 @@ msgstr "Pritisnite tipko Esc za kon�anje"
2518- msgid "Press any key to exit"
2519- msgstr "Pritisnite katerokoli tipko za kon�anje"
2520-
2521--#: js/ui/panel.js:355
2522-+#: js/ui/panel.js:356
2523- msgid "Quit"
2524- msgstr "Kon�aj"
2525-
2526- #. Translators: If there is no suitable word for "Activities"
2527- #. in your language, you can use the word for "Overview".
2528--#: js/ui/panel.js:411
2529-+#: js/ui/panel.js:412
2530- msgid "Activities"
2531- msgstr "Dejavnosti"
2532-
2533--#: js/ui/panel.js:692
2534-+#: js/ui/panel.js:693
2535- msgctxt "System menu in the top bar"
2536- msgid "System"
2537- msgstr "Sistem"
2538-
2539--#: js/ui/panel.js:811
2540-+#: js/ui/panel.js:816
2541- msgid "Top Bar"
2542- msgstr "Vrhnja vrstica"
2543-
2544-@@ -1475,7 +1475,7 @@ msgstr "Vrhnja vrstica"
2545- #. "ON" and "OFF") or "toggle-switch-intl" (for toggle
2546- #. switches containing "â—¯" and "|"). Other values will
2547- #. simply result in invisible toggle switches.
2548--#: js/ui/popupMenu.js:291
2549-+#: js/ui/popupMenu.js:300
2550- msgid "toggle-switch-us"
2551- msgstr "toggle-switch-intl"
2552-
2553-@@ -1483,15 +1483,15 @@ msgstr "toggle-switch-intl"
2554- msgid "Enter a Command"
2555- msgstr "Vnos ukaza"
2556-
2557--#: js/ui/runDialog.js:110 js/ui/windowMenu.js:175
2558-+#: js/ui/runDialog.js:110 js/ui/windowMenu.js:174
2559- msgid "Close"
2560- msgstr "Zapri"
2561-
2562--#: js/ui/runDialog.js:273
2563-+#: js/ui/runDialog.js:274
2564- msgid "Restart is not available on Wayland"
2565- msgstr "Na sistemu Wayland je na voljo ponovni zagon"
2566-
2567--#: js/ui/runDialog.js:278
2568-+#: js/ui/runDialog.js:279
2569- msgid "Restarting…"
2570- msgstr "Ponovno zaganjanje ...."
2571-
2572-@@ -1706,7 +1706,7 @@ msgid "<unknown>"
2573- msgstr "<neznano>"
2574-
2575- #. Translators: %s is a network identifier
2576--#: js/ui/status/network.js:441 js/ui/status/network.js:1310
2577-+#: js/ui/status/network.js:441 js/ui/status/network.js:1323
2578- #, javascript-format
2579- msgid "%s Off"
2580- msgstr "%s izklopljeno"
2581-@@ -1732,7 +1732,7 @@ msgid "%s Disconnecting"
2582- msgstr "%s poteka prekinjanje povezave"
2583-
2584- #. Translators: %s is a network identifier
2585--#: js/ui/status/network.js:459 js/ui/status/network.js:1302
2586-+#: js/ui/status/network.js:459 js/ui/status/network.js:1315
2587- #, javascript-format
2588- msgid "%s Connecting"
2589- msgstr "%s poteka vzpostavljanje povezave"
2590-@@ -1772,7 +1772,7 @@ msgid "Mobile Broadband Settings"
2591- msgstr "Nastavitve mobilnega Å¡irokopasovnega dostopa"
2592-
2593- #. Translators: %s is a network identifier
2594--#: js/ui/status/network.js:578 js/ui/status/network.js:1307
2595-+#: js/ui/status/network.js:578 js/ui/status/network.js:1320
2596- #, javascript-format
2597- msgid "%s Hardware Disabled"
2598- msgstr "%s strojno onemogo�eno"
2599-@@ -1828,56 +1828,56 @@ msgstr "Ni zaznanih omrežij"
2600- msgid "Use hardware switch to turn off"
2601- msgstr "Uporabite strojni gumb za izklop"
2602-
2603--#: js/ui/status/network.js:1173
2604-+#: js/ui/status/network.js:1186
2605- msgid "Select Network"
2606- msgstr "Izbor omrežja"
2607-
2608--#: js/ui/status/network.js:1179
2609-+#: js/ui/status/network.js:1192
2610- msgid "Wi-Fi Settings"
2611- msgstr "Nastavitve Wi-Fi"
2612-
2613- #. Translators: %s is a network identifier
2614--#: js/ui/status/network.js:1298
2615-+#: js/ui/status/network.js:1311
2616- #, javascript-format
2617- msgid "%s Hotspot Active"
2618- msgstr "%s vro�a to�ka je dejavna"
2619-
2620- #. Translators: %s is a network identifier
2621--#: js/ui/status/network.js:1313
2622-+#: js/ui/status/network.js:1326
2623- #, javascript-format
2624- msgid "%s Not Connected"
2625- msgstr "%s brez povezave"
2626-
2627--#: js/ui/status/network.js:1413
2628-+#: js/ui/status/network.js:1426
2629- msgid "connecting…"
2630- msgstr "vzpostavljanje povezave …"
2631-
2632- #. Translators: this is for network connections that require some kind of key or password
2633--#: js/ui/status/network.js:1416
2634-+#: js/ui/status/network.js:1429
2635- msgid "authentication required"
2636- msgstr "zahtevana je overitev"
2637-
2638--#: js/ui/status/network.js:1418
2639-+#: js/ui/status/network.js:1431
2640- msgid "connection failed"
2641- msgstr "povezovanje je spodletelo"
2642-
2643--#: js/ui/status/network.js:1472
2644-+#: js/ui/status/network.js:1485
2645- msgid "VPN Settings"
2646- msgstr "Nastavitve VPN"
2647-
2648--#: js/ui/status/network.js:1485
2649-+#: js/ui/status/network.js:1498
2650- msgid "VPN"
2651- msgstr "VPN"
2652-
2653--#: js/ui/status/network.js:1495
2654-+#: js/ui/status/network.js:1508
2655- msgid "VPN Off"
2656- msgstr "Onemogo�en VPN"
2657-
2658--#: js/ui/status/network.js:1559 js/ui/status/rfkill.js:93
2659-+#: js/ui/status/network.js:1572 js/ui/status/rfkill.js:93
2660- msgid "Network Settings"
2661- msgstr "Omrežne nastavitve"
2662-
2663--#: js/ui/status/network.js:1588
2664-+#: js/ui/status/network.js:1601
2665- #, javascript-format
2666- msgid "%s Wired Connection"
2667- msgid_plural "%s Wired Connections"
2668-@@ -1886,7 +1886,7 @@ msgstr[1] "%s ži�na povezava"
2669- msgstr[2] "%s ži�ni povezavi"
2670- msgstr[3] "%s ži�ne povezave"
2671-
2672--#: js/ui/status/network.js:1592
2673-+#: js/ui/status/network.js:1605
2674- #, javascript-format
2675- msgid "%s Wi-Fi Connection"
2676- msgid_plural "%s Wi-Fi Connections"
2677-@@ -1895,7 +1895,7 @@ msgstr[1] "%s povezava Wi-Fi"
2678- msgstr[2] "%s povezavi Wi-Fi"
2679- msgstr[3] "%s povezave Wi-Fi"
2680-
2681--#: js/ui/status/network.js:1596
2682-+#: js/ui/status/network.js:1609
2683- #, javascript-format
2684- msgid "%s Modem Connection"
2685- msgid_plural "%s Modem Connections"
2686-@@ -1904,11 +1904,11 @@ msgstr[1] "%s modemska povezava"
2687- msgstr[2] "%s modemski povezavi"
2688- msgstr[3] "%s modemske povezave"
2689-
2690--#: js/ui/status/network.js:1728
2691-+#: js/ui/status/network.js:1741
2692- msgid "Connection failed"
2693- msgstr "Povezovanje je spodletelo"
2694-
2695--#: js/ui/status/network.js:1729
2696-+#: js/ui/status/network.js:1742
2697- msgid "Activation of network connection failed"
2698- msgstr "Omogo�anje omrežne povezave je spodletelo."
2699-
2700-@@ -1959,6 +1959,14 @@ msgstr "%d∶%02d do polnosti (%d %%)"
2701- msgid "%d %%"
2702- msgstr "%d %%"
2703-
2704-+#: js/ui/status/remoteAccess.js:46
2705-+msgid "Screen is Being Shared"
2706-+msgstr "Zaslon je v na�inu souporabe"
2707-+
2708-+#: js/ui/status/remoteAccess.js:48
2709-+msgid "Turn off"
2710-+msgstr "Izklopi"
2711-+
2712- #. The menu only appears when airplane mode is on, so just
2713- #. statically build it as if it was on, rather than dynamically
2714- #. changing the menu contents.
2715-@@ -1990,16 +1998,16 @@ msgstr "V pripravljenost"
2716- msgid "Power Off"
2717- msgstr "Izklop"
2718-
2719--#: js/ui/status/thunderbolt.js:294
2720-+#: js/ui/status/thunderbolt.js:298
2721- msgid "Thunderbolt"
2722- msgstr "Thunderbolt"
2723-
2724- #. we are done
2725--#: js/ui/status/thunderbolt.js:350
2726-+#: js/ui/status/thunderbolt.js:354
2727- msgid "Unknown Thunderbolt device"
2728- msgstr "Neznana naprava Thunderbolt"
2729-
2730--#: js/ui/status/thunderbolt.js:351
2731-+#: js/ui/status/thunderbolt.js:355
2732- msgid ""
2733- "New device has been detected while you were away. Please disconnect and "
2734- "reconnect the device to start using it."
2735-@@ -2007,11 +2015,11 @@ msgstr ""
2736- "Med nedejavnostjo je bila zaznana nova. Odklopite napravo in jo znova "
2737- "priklopite za uporabo."
2738-
2739--#: js/ui/status/thunderbolt.js:356
2740-+#: js/ui/status/thunderbolt.js:360
2741- msgid "Thunderbolt authorization error"
2742- msgstr "Napaka overitve naprave Thunderbolt"
2743-
2744--#: js/ui/status/thunderbolt.js:357
2745-+#: js/ui/status/thunderbolt.js:361
2746- #, javascript-format
2747- msgid "Could not authorize the Thunderbolt device: %s"
2748- msgstr "Naprave Thunderbolt ni mogo�e overiti: %s"
2749-@@ -2099,7 +2107,7 @@ msgstr[3] "Spremembe nastavitev bodo povrnjene v %d sekundah."
2750-
2751- #. Translators: This represents the size of a window. The first number is
2752- #. * the width of the window and the second is the height.
2753--#: js/ui/windowManager.js:660
2754-+#: js/ui/windowManager.js:668
2755- #, javascript-format
2756- msgid "%d × %d"
2757- msgstr "%d × %d"
2758-@@ -2152,19 +2160,19 @@ msgstr "Premakni na zgornjo delovno površino"
2759- msgid "Move to Workspace Down"
2760- msgstr "Premakni na spodnjo delovno površino"
2761-
2762--#: js/ui/windowMenu.js:140
2763-+#: js/ui/windowMenu.js:139
2764- msgid "Move to Monitor Up"
2765- msgstr "Premakni na zaslon zgoraj"
2766-
2767--#: js/ui/windowMenu.js:149
2768-+#: js/ui/windowMenu.js:148
2769- msgid "Move to Monitor Down"
2770- msgstr "Premakni na zaslon spodaj"
2771-
2772--#: js/ui/windowMenu.js:158
2773-+#: js/ui/windowMenu.js:157
2774- msgid "Move to Monitor Left"
2775- msgstr "Premakni na zaslon levo"
2776-
2777--#: js/ui/windowMenu.js:167
2778-+#: js/ui/windowMenu.js:166
2779- msgid "Move to Monitor Right"
2780- msgstr "Premakni na zaslon desno"
2781-
2782-@@ -2193,12 +2201,12 @@ msgstr "Uporabi poseben na�in, na primer »gdm« za prijavni zaslon"
2783- msgid "List possible modes"
2784- msgstr "Seznam mogo�ih na�inov"
2785-
2786--#: src/shell-app.c:270
2787-+#: src/shell-app.c:272
2788- msgctxt "program"
2789- msgid "Unknown"
2790- msgstr "Neznano"
2791-
2792--#: src/shell-app.c:511
2793-+#: src/shell-app.c:523
2794- #, c-format
2795- msgid "Failed to launch “%s�"
2796- msgstr "Zaganjanje »%s« je spodletelo"
2797diff --git a/debian/patches/data-Fix-comment-in-schema.patch b/debian/patches/data-Fix-comment-in-schema.patch
2798deleted file mode 100644
2799index cfc1170..0000000
2800--- a/debian/patches/data-Fix-comment-in-schema.patch
2801+++ /dev/null
2802@@ -1,22 +0,0 @@
2803-From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuellner@gnome.org>
2804-Date: Wed, 1 Aug 2018 20:03:03 +0200
2805-Subject: data: Fix comment in schema
2806-
2807-Origin: upstream, 3.29.91, commit:9f436ce3734b889afcff1880f6fed884196b92c5
2808----
2809- data/org.gnome.shell.gschema.xml.in | 2 +-
2810- 1 file changed, 1 insertion(+), 1 deletion(-)
2811-
2812-diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in
2813-index 3e258e2..8e6b990 100644
2814---- a/data/org.gnome.shell.gschema.xml.in
2815-+++ b/data/org.gnome.shell.gschema.xml.in
2816-@@ -198,7 +198,7 @@
2817- </key>
2818- </schema>
2819-
2820-- <!-- unused, change 00_org.gnome.shell.gschema.override instead --!>
2821-+ <!-- unused, change 00_org.gnome.shell.gschema.override instead -->
2822- <schema id="org.gnome.shell.overrides" path="/org/gnome/shell/overrides/"
2823- gettext-domain="@GETTEXT_PACKAGE@">
2824- <key name="attach-modal-dialogs" type="b">
2825diff --git a/debian/patches/js-main-Throw-error-if-no-valid-default-stylesheet-is-fou.patch b/debian/patches/js-main-Throw-error-if-no-valid-default-stylesheet-is-fou.patch
2826index 98403a4..c246360 100644
2827--- a/debian/patches/js-main-Throw-error-if-no-valid-default-stylesheet-is-fou.patch
2828+++ b/debian/patches/js-main-Throw-error-if-no-valid-default-stylesheet-is-fou.patch
2829@@ -11,7 +11,7 @@ Forwarded: not-needed, upstream does not support custom modes/themes officially.
2830 1 file changed, 3 insertions(+)
2831
2832 diff --git a/js/ui/main.js b/js/ui/main.js
2833-index aa1de83..92e61c8 100644
2834+index 68c3a0c..ce57421 100644
2835 --- a/js/ui/main.js
2836 +++ b/js/ui/main.js
2837 @@ -346,6 +346,9 @@ function loadTheme() {
2838diff --git a/debian/patches/js-ui-Choose-some-actors-to-cache-on-the-GPU.patch b/debian/patches/js-ui-Choose-some-actors-to-cache-on-the-GPU.patch
2839deleted file mode 100644
2840index f9971bf..0000000
2841--- a/debian/patches/js-ui-Choose-some-actors-to-cache-on-the-GPU.patch
2842+++ /dev/null
2843@@ -1,133 +0,0 @@
2844-From: Daniel van Vugt <daniel.van.vugt@canonical.com>
2845-Date: Fri, 6 Apr 2018 12:26:58 +0200
2846-Subject: js/ui: Choose some actors to cache on the GPU
2847-
2848-Adds a wrapper function to flag actors that are good candidates for
2849-caching in texture memory (what Clutter calls "offscreen redirect"),
2850-thereby mostly eliminating their repaint overhead.
2851-
2852-This isn't exactly groundbreaking, it's how you're meant to use
2853-OpenGL in the first place. But the difficulty is in the design of
2854-Clutter which has some peculiarities making universal caching
2855-inefficient at the moment:
2856-
2857- * Repainting an offscreen actor is measurably slower than repainting
2858- the same actor if it was uncached. But only by less than 100%,
2859- so if an actor can avoid changing every frame then caching is usually
2860- more efficient over that timeframe.
2861-
2862- * The cached painting from a container typically includes its children,
2863- so you can't cache containers whose children are usually animating at
2864- full frame rate. That results in a performance loss.
2865- This could be remedied in future by Clutter explicitly separating a
2866- container's background painting from its child painting and always
2867- caching the background (as StWidget tries to in some cases already).
2868-
2869-So this commit selects just a few areas where caching has been verified
2870-to be beneficial, and many use cases now see their CPU usage halved:
2871-
2872-One small window active...... 10% -> 7% (-30%)
2873-...under a panel menu........ 23% -> 9% (-61%)
2874-One maximized window active.. 12% -> 9% (-25%)
2875-...under a panel menu........ 23% -> 11% (-52%)
2876-...under a shell dialog...... 22% -> 12% (-45%)
2877-...in activities overview.... 32% -> 17% (-47%)
2878-(on an i7-7700)
2879-
2880-Also a couple of bugs are fixed by this:
2881-
2882-https://bugzilla.gnome.org/show_bug.cgi?id=792634
2883-https://bugzilla.gnome.org/show_bug.cgi?id=792633
2884-
2885-Bug-GNOME: https://bugzilla.gnome.org/show_bug.cgi?id=792634
2886-Bug-GNOME: https://bugzilla.gnome.org/show_bug.cgi?id=792633
2887-Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1744001
2888-Forwarded: yes, https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/73
2889----
2890- js/ui/boxpointer.js | 1 +
2891- js/ui/dash.js | 1 +
2892- js/ui/dialog.js | 2 ++
2893- js/ui/main.js | 16 ++++++++++++++++
2894- js/ui/panel.js | 1 +
2895- 5 files changed, 21 insertions(+)
2896-
2897-diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js
2898-index 47f718a..602646a 100644
2899---- a/js/ui/boxpointer.js
2900-+++ b/js/ui/boxpointer.js
2901-@@ -44,6 +44,7 @@ var BoxPointer = new Lang.Class({
2902- y_fill: true });
2903- this._container = new Shell.GenericContainer();
2904- this.actor.set_child(this._container);
2905-+ Main.hintActorSeldomChanges(this.actor);
2906- this._container.connect('get-preferred-width', this._getPreferredWidth.bind(this));
2907- this._container.connect('get-preferred-height', this._getPreferredHeight.bind(this));
2908- this._container.connect('allocate', this._allocate.bind(this));
2909-diff --git a/js/ui/dash.js b/js/ui/dash.js
2910-index 5ee2476..14864f1 100644
2911---- a/js/ui/dash.js
2912-+++ b/js/ui/dash.js
2913-@@ -402,6 +402,7 @@ var Dash = new Lang.Class({
2914- clip_to_allocation: true });
2915- this._box._delegate = this;
2916- this._container.add_actor(this._box);
2917-+ Main.hintActorSeldomChanges(this._container);
2918-
2919- this._showAppsIcon = new ShowAppsIcon();
2920- this._showAppsIcon.childScale = 1;
2921-diff --git a/js/ui/dialog.js b/js/ui/dialog.js
2922-index cfa192d..89db963 100644
2923---- a/js/ui/dialog.js
2924-+++ b/js/ui/dialog.js
2925-@@ -6,6 +6,7 @@ const GObject = imports.gi.GObject;
2926- const Pango = imports.gi.Pango;
2927- const St = imports.gi.St;
2928- const Lang = imports.lang;
2929-+const Main = imports.ui.main;
2930-
2931- var Dialog = new Lang.Class({
2932- Name: 'Dialog',
2933-@@ -40,6 +41,7 @@ var Dialog = new Lang.Class({
2934- // mode accordingly so wrapped labels are handled correctly during
2935- // size requests.
2936- this._dialog.request_mode = Clutter.RequestMode.HEIGHT_FOR_WIDTH;
2937-+ Main.hintActorSeldomChanges(this._dialog);
2938-
2939- this.contentLayout = new St.BoxLayout({ vertical: true,
2940- style_class: "modal-dialog-content-box" });
2941-diff --git a/js/ui/main.js b/js/ui/main.js
2942-index e107de7..6e3c971 100644
2943---- a/js/ui/main.js
2944-+++ b/js/ui/main.js
2945-@@ -717,3 +717,19 @@ function showRestartMessage(message) {
2946- let restartMessage = new RestartMessage(message);
2947- restartMessage.open();
2948- }
2949-+
2950-+/**
2951-+ * hintActorSeldomChanges:
2952-+ * @actor: A clutter actor
2953-+ *
2954-+ * Flag an actor as known to not need repainting very often. Such actors can
2955-+ * have their painting cached in GPU memory so that future repaints triggered
2956-+ * by other actors don't incur a repaint of @actor. This can provide dramatic
2957-+ * performance benefits if used wisely.
2958-+ *
2959-+ * This hint needs to be provided manually because clutter presently lacks
2960-+ * a good enough heuristic to toggle the optimization automatically.
2961-+ */
2962-+function hintActorSeldomChanges(actor) {
2963-+ actor.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
2964-+}
2965-diff --git a/js/ui/panel.js b/js/ui/panel.js
2966-index 05241ab..513ad3e 100644
2967---- a/js/ui/panel.js
2968-+++ b/js/ui/panel.js
2969-@@ -776,6 +776,7 @@ var Panel = new Lang.Class({
2970- this.actor = new Shell.GenericContainer({ name: 'panel',
2971- reactive: true });
2972- this.actor._delegate = this;
2973-+ Main.hintActorSeldomChanges(this.actor);
2974-
2975- this._sessionStyle = null;
2976-
2977diff --git a/debian/patches/keyboard-Refactor-code-resetting-IM-on-window-drags.patch b/debian/patches/keyboard-Refactor-code-resetting-IM-on-window-drags.patch
2978deleted file mode 100644
2979index 63d72a6..0000000
2980--- a/debian/patches/keyboard-Refactor-code-resetting-IM-on-window-drags.patch
2981+++ /dev/null
2982@@ -1,53 +0,0 @@
2983-From: Carlos Garnacho <carlosg@gnome.org>
2984-Date: Fri, 3 Aug 2018 16:01:48 +0200
2985-Subject: keyboard: Refactor code resetting IM on window drags
2986-
2987-When a window is dragged, the OSK should get hidden. Just
2988-do this in a nicer way.
2989-
2990-Origin: upstream, 3.29.91, commit:6b610b26f8bc2a9ef2ab121a1c6a55bf277d52b7
2991----
2992- js/ui/keyboard.js | 16 ++++++----------
2993- 1 file changed, 6 insertions(+), 10 deletions(-)
2994-
2995-diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
2996-index 4a24940..5d5f0e2 100644
2997---- a/js/ui/keyboard.js
2998-+++ b/js/ui/keyboard.js
2999-@@ -492,13 +492,18 @@ var FocusTracker = new Lang.Class({
3000-
3001- _init() {
3002- this._currentWindow = null;
3003-- this._currentWindowPositionId = 0;
3004-
3005- global.display.connect('notify::focus-window', () => {
3006- this._setCurrentWindow(global.display.focus_window);
3007- this.emit('window-changed', this._currentWindow);
3008- });
3009-
3010-+ global.display.connect('grab-op-begin', (display, window, op) => {
3011-+ if (window == this._currentWindow &&
3012-+ (op == Meta.GrabOp.MOVING || op == Meta.GrabOp.KEYBOARD_MOVING))
3013-+ this.emit('reset');
3014-+ });
3015-+
3016- /* Valid for wayland clients */
3017- Main.inputMethod.connect('cursor-location-changed', (o, rect) => {
3018- let newRect = { x: rect.get_x(), y: rect.get_y(), width: rect.get_width(), height: rect.get_height() };
3019-@@ -520,16 +525,7 @@ var FocusTracker = new Lang.Class({
3020- },
3021-
3022- _setCurrentWindow(window) {
3023-- if (this._currentWindow)
3024-- this._currentWindow.disconnect(this._currentWindowPositionId);
3025--
3026- this._currentWindow = window;
3027-- if (window) {
3028-- this._currentWindowPositionId = this._currentWindow.connect('position-changed', () => {
3029-- if (global.display.get_grab_op() != Meta.GrabOp.NONE)
3030-- this.emit('reset');
3031-- });
3032-- }
3033- },
3034-
3035- _setCurrentRect(rect) {
3036diff --git a/debian/patches/keyboard-defer-position-changed-till-we-have-a-rect.patch b/debian/patches/keyboard-defer-position-changed-till-we-have-a-rect.patch
3037deleted file mode 100644
3038index e44c1bf..0000000
3039--- a/debian/patches/keyboard-defer-position-changed-till-we-have-a-rect.patch
3040+++ /dev/null
3041@@ -1,29 +0,0 @@
3042-From: Carlos Garnacho <carlosg@gnome.org>
3043-Date: Sat, 14 Jul 2018 00:14:07 +0200
3044-Subject: keyboard: defer position-changed till we have a rect
3045-
3046-Emitting it that soon results in JS warnings, as we don't have
3047-everything in place yet. The position-changed signal will be
3048-emitted from other locations as soon as we have it.
3049-
3050-Bug: https://gitlab.gnome.org/GNOME/gnome-shell/issues/464
3051-Origin: upstream, 3.29.91, commit:81956e9b84a751e0aae739ef08017d3bfef907c8
3052----
3053- js/ui/keyboard.js | 4 +---
3054- 1 file changed, 1 insertion(+), 3 deletions(-)
3055-
3056-diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
3057-index 1666a50..4a24940 100644
3058---- a/js/ui/keyboard.js
3059-+++ b/js/ui/keyboard.js
3060-@@ -526,9 +526,7 @@ var FocusTracker = new Lang.Class({
3061- this._currentWindow = window;
3062- if (window) {
3063- this._currentWindowPositionId = this._currentWindow.connect('position-changed', () => {
3064-- if (global.display.get_grab_op() == Meta.GrabOp.NONE)
3065-- this.emit('position-changed');
3066-- else
3067-+ if (global.display.get_grab_op() != Meta.GrabOp.NONE)
3068- this.emit('reset');
3069- });
3070- }
3071diff --git a/debian/patches/optional-hot-corner.patch b/debian/patches/optional-hot-corner.patch
3072index f26f031..b5b8a2b 100644
3073--- a/debian/patches/optional-hot-corner.patch
3074+++ b/debian/patches/optional-hot-corner.patch
3075@@ -14,7 +14,7 @@ https://bugzilla.gnome.org/show_bug.cgi?id=688320
3076 2 files changed, 16 insertions(+)
3077
3078 diff --git a/data/org.gnome.shell.gschema.xml.in b/data/org.gnome.shell.gschema.xml.in
3079-index 4ec01a4..3e258e2 100644
3080+index a7251cd..8e6b990 100644
3081 --- a/data/org.gnome.shell.gschema.xml.in
3082 +++ b/data/org.gnome.shell.gschema.xml.in
3083 @@ -38,6 +38,14 @@
3084@@ -33,10 +33,10 @@ index 4ec01a4..3e258e2 100644
3085 <default>[ 'epiphany.desktop', 'evolution.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'org.gnome.Nautilus.desktop', 'org.gnome.Software.desktop' ]</default>
3086 <summary>List of desktop file IDs for favorite applications</summary>
3087 diff --git a/js/ui/layout.js b/js/ui/layout.js
3088-index 210fb66..eb8a6e1 100644
3089+index 7a3cb22..08e7495 100644
3090 --- a/js/ui/layout.js
3091 +++ b/js/ui/layout.js
3092-@@ -269,6 +269,9 @@ var LayoutManager = new Lang.Class({
3093+@@ -270,6 +270,9 @@ var LayoutManager = new Lang.Class({
3094 this._backgroundGroup.lower_bottom();
3095 this._bgManagers = [];
3096
3097@@ -46,7 +46,7 @@ index 210fb66..eb8a6e1 100644
3098 // Need to update struts on new workspaces when they are added
3099 let workspaceManager = global.workspace_manager;
3100 workspaceManager.connect('notify::n-workspaces',
3101-@@ -370,6 +373,11 @@ var LayoutManager = new Lang.Class({
3102+@@ -371,6 +374,11 @@ var LayoutManager = new Lang.Class({
3103 });
3104 this.hotCorners = [];
3105
3106diff --git a/debian/patches/series b/debian/patches/series
3107index b0aa083..c198fe6 100644
3108--- a/debian/patches/series
3109+++ b/debian/patches/series
3110@@ -8,22 +8,7 @@ ubuntu/gdm_alternatives.patch
3111 ubuntu/block_mode_extension_update.patch
3112 optional-hot-corner.patch
3113 volume-Add-back-sound-feedback-on-scroll.patch
3114-Update-Brazilian-Portuguese-translation.patch
3115-showOSD-Fix-handling-of-defined-falsy-parameters.patch
3116-data-Fix-comment-in-schema.patch
3117-workspace-Fix-infinite-loop-when-finding-parent-window-of.patch
3118-workspace-Simplify-detecting-added-dialogs-after-closing-.patch
3119-tools-fix-XDG-desktop-syntax-in-gnome-shell-overrides-mig.patch
3120-Updated-Slovenian-translation.patch
3121-keyboard-defer-position-changed-till-we-have-a-rect.patch
3122-keyboard-Refactor-code-resetting-IM-on-window-drags.patch
3123-tweener-Save-handlers-on-target-and-remove-them-on-destro.patch
3124-dnd-Nullify-_dragActor-after-we-ve-destroyed-it-and-avoid.patch
3125-messageList-stop-syncing-if-closeButton-has-been-destroye.patch
3126-automountManager-remove-allowAutorun-expire-timeout-on-vo.patch
3127 st-texture-cache-Cancel-sliced-image-loading-on-target-ac.patch
3128-js-ui-Choose-some-actors-to-cache-on-the-GPU.patch
3129-workaround_crasher_fractional_scaling.patch
3130 main-show-an-error-message-on-gnome-shell-crash.patch
3131 global-make-possible-to-set-debug-flags-dynamically.patch
3132 main-increase-the-granularity-of-backtraces-in-SHELL_DEBU.patch
3133@@ -32,4 +17,8 @@ sessionMode-add-support-for-debugFlags-parameter.patch
3134 st-scroll-view-Handle-the-case-where-scrollbars-are-NULL.patch
3135 st-scroll-view-Remove-scrollbars-references-on-dispose.patch
3136 js-main-Throw-error-if-no-valid-default-stylesheet-is-fou.patch
3137-
3138+tweener-Save-handlers-on-target-and-remove-them-on-destro.patch
3139+dnd-Nullify-_dragActor-after-we-ve-destroyed-it-and-avoid.patch
3140+messageList-stop-syncing-if-closeButton-has-been-destroye.patch
3141+automountManager-remove-allowAutorun-expire-timeout-on-vo.patch
3142+workaround_crasher_fractional_scaling.patch
3143diff --git a/debian/patches/sessionMode-add-support-for-debugFlags-parameter.patch b/debian/patches/sessionMode-add-support-for-debugFlags-parameter.patch
3144index fec593e..afa4447 100644
3145--- a/debian/patches/sessionMode-add-support-for-debugFlags-parameter.patch
3146+++ b/debian/patches/sessionMode-add-support-for-debugFlags-parameter.patch
3147@@ -15,7 +15,7 @@ Forwarded: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/6
3148 2 files changed, 4 insertions(+)
3149
3150 diff --git a/js/ui/main.js b/js/ui/main.js
3151-index 6e3c971..aa1de83 100644
3152+index e107de7..68c3a0c 100644
3153 --- a/js/ui/main.js
3154 +++ b/js/ui/main.js
3155 @@ -111,6 +111,9 @@ function _sessionUpdated() {
3156diff --git a/debian/patches/showOSD-Fix-handling-of-defined-falsy-parameters.patch b/debian/patches/showOSD-Fix-handling-of-defined-falsy-parameters.patch
3157deleted file mode 100644
3158index d2613a0..0000000
3159--- a/debian/patches/showOSD-Fix-handling-of-defined-falsy-parameters.patch
3160+++ /dev/null
3161@@ -1,51 +0,0 @@
3162-From: =?utf-8?q?Florian_M=C3=BCllner?= <fmuellner@gnome.org>
3163-Date: Wed, 1 Aug 2018 13:27:07 +0200
3164-Subject: showOSD: Fix handling of defined 'falsy' parameters
3165-
3166-For the OSD, all parameters except for the icon are optional - if the
3167-caller doesn't include the 'label' option, the OSD won't show a label
3168-etc.
3169-
3170-While this makes sense for an API, it means that we have to be careful
3171-to correctly differentiate an option that was omitted and an option
3172-that has a 'falsy' value like false or 0.
3173-
3174-Unfortunately since commit ccaae5d3c we no longer do, with the result
3175-that OSDs meant for the first monitor will show up on all, and a level
3176-of 0 is presented as no level bar instead of an empty one, whoops.
3177-
3178-Bug: https://bugzilla.gnome.org/show_bug.cgi?id=791669
3179-Origin: upstream, 3.29.91, commit:d908940ef37dd6a5b72148ded8b995c17a01604a
3180----
3181- js/ui/shellDBus.js | 16 ++++++++++------
3182- 1 file changed, 10 insertions(+), 6 deletions(-)
3183-
3184-diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js
3185-index 55e1e57..4d60ef4 100644
3186---- a/js/ui/shellDBus.js
3187-+++ b/js/ui/shellDBus.js
3188-@@ -145,14 +145,18 @@ var GnomeShell = new Lang.Class({
3189- for (let param in params)
3190- params[param] = params[param].deep_unpack();
3191-
3192-- let monitorIndex = params['monitor'] || -1;
3193-- let label = params['label'] || undefined;
3194-- let level = params['level'] || undefined;
3195-- let maxLevel = params['max_level'] || undefined;
3196-+ let { monitor: monitorIndex,
3197-+ label,
3198-+ level,
3199-+ max_level: maxLevel,
3200-+ icon: serializedIcon } = params;
3201-+
3202-+ if (monitorIndex === undefined)
3203-+ monitorIndex = -1;
3204-
3205- let icon = null;
3206-- if (params['icon'])
3207-- icon = Gio.Icon.new_for_string(params['icon']);
3208-+ if (serializedIcon)
3209-+ icon = Gio.Icon.new_for_string(serializedIcon);
3210-
3211- Main.osdWindowManager.show(monitorIndex, icon, label, level, maxLevel);
3212- },
3213diff --git a/debian/patches/st-scroll-view-Handle-the-case-where-scrollbars-are-NULL.patch b/debian/patches/st-scroll-view-Handle-the-case-where-scrollbars-are-NULL.patch
3214index fce7e26..0c5e93d 100644
3215--- a/debian/patches/st-scroll-view-Handle-the-case-where-scrollbars-are-NULL.patch
3216+++ b/debian/patches/st-scroll-view-Handle-the-case-where-scrollbars-are-NULL.patch
3217@@ -6,9 +6,8 @@ The scrollbars actors in a scroll view can be NULL, in case they get removed
3218 with a call to `clutter_actor_remove_child` on a scroll-view (and this is
3219 implemented in st_scroll_view_remove).
3220
3221-So, we should support the case where `priv->{h,v}scroll` are NULL, without
3222-relying on called functions, as they might spam the log with unexpected
3223-warnings or at worse, crashing (as it happens with `st_widget_style_changed`).
3224+So, we should support the case where `priv->{h,v}scroll` are NULL, not to crash
3225+in `st_widget_style_changed`.
3226
3227 Fixes #467
3228
3229@@ -16,76 +15,14 @@ Bug-GNOME: https://gitlab.gnome.org/GNOME/gnome-shell/issues/467
3230 BUG-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/gnome-shell/+bug/1725312
3231 Forwarded: yes, https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/190
3232 ---
3233- src/st/st-scroll-view.c | 25 +++++++++++++++----------
3234- 1 file changed, 15 insertions(+), 10 deletions(-)
3235+ src/st/st-scroll-view.c | 7 +++++--
3236+ 1 file changed, 5 insertions(+), 2 deletions(-)
3237
3238 diff --git a/src/st/st-scroll-view.c b/src/st/st-scroll-view.c
3239-index fc0db1c..b9aaff2 100644
3240+index fc0db1c..a8b6d2e 100644
3241 --- a/src/st/st-scroll-view.c
3242 +++ b/src/st/st-scroll-view.c
3243-@@ -281,9 +281,9 @@ st_scroll_view_paint (ClutterActor *actor)
3244-
3245- if (priv->child)
3246- clutter_actor_paint (priv->child);
3247-- if (priv->hscrollbar_visible)
3248-+ if (priv->hscroll && priv->hscrollbar_visible)
3249- clutter_actor_paint (priv->hscroll);
3250-- if (priv->vscrollbar_visible)
3251-+ if (priv->vscroll && priv->vscrollbar_visible)
3252- clutter_actor_paint (priv->vscroll);
3253- }
3254-
3255-@@ -298,9 +298,9 @@ st_scroll_view_pick (ClutterActor *actor,
3256-
3257- if (priv->child)
3258- clutter_actor_paint (priv->child);
3259-- if (priv->hscrollbar_visible)
3260-+ if (priv->hscroll && priv->hscrollbar_visible)
3261- clutter_actor_paint (priv->hscroll);
3262-- if (priv->vscrollbar_visible)
3263-+ if (priv->vscroll && priv->vscrollbar_visible)
3264- clutter_actor_paint (priv->vscroll);
3265- }
3266-
3267-@@ -317,7 +317,7 @@ get_scrollbar_width (StScrollView *scroll,
3268- {
3269- StScrollViewPrivate *priv = scroll->priv;
3270-
3271-- if (clutter_actor_is_visible (priv->vscroll))
3272-+ if (priv->vscroll && clutter_actor_is_visible (priv->vscroll))
3273- {
3274- gfloat min_size;
3275-
3276-@@ -335,7 +335,7 @@ get_scrollbar_height (StScrollView *scroll,
3277- {
3278- StScrollViewPrivate *priv = scroll->priv;
3279-
3280-- if (clutter_actor_is_visible (priv->hscroll))
3281-+ if (priv->hscroll && clutter_actor_is_visible (priv->hscroll))
3282- {
3283- gfloat min_size;
3284-
3285-@@ -637,7 +637,8 @@ st_scroll_view_allocate (ClutterActor *actor,
3286- child_box.y1 = content_box.y1;
3287- child_box.y2 = content_box.y2 - (hscrollbar_visible ? sb_height : 0);
3288-
3289-- clutter_actor_allocate (priv->vscroll, &child_box, flags);
3290-+ if (priv->vscroll)
3291-+ clutter_actor_allocate (priv->vscroll, &child_box, flags);
3292-
3293- /* Horizontal scrollbar */
3294- if (clutter_actor_get_text_direction (actor) == CLUTTER_TEXT_DIRECTION_RTL)
3295-@@ -653,7 +654,8 @@ st_scroll_view_allocate (ClutterActor *actor,
3296- child_box.y1 = content_box.y2 - sb_height;
3297- child_box.y2 = content_box.y2;
3298-
3299-- clutter_actor_allocate (priv->hscroll, &child_box, flags);
3300-+ if (priv->hscroll)
3301-+ clutter_actor_allocate (priv->hscroll, &child_box, flags);
3302-
3303- /* In case the scrollbar policy is NEVER or EXTERNAL or scrollbars
3304- * should be overlayed, we don't trim the content box allocation by
3305-@@ -741,8 +743,11 @@ st_scroll_view_style_changed (StWidget *widget)
3306+@@ -741,8 +741,11 @@ st_scroll_view_style_changed (StWidget *widget)
3307 gdouble hfade_offset = st_theme_node_get_length (theme_node, "-st-hfade-offset");
3308 st_scroll_view_update_fade_effect (self, vfade_offset, hfade_offset);
3309
3310diff --git a/debian/patches/st-scroll-view-Remove-scrollbars-references-on-dispose.patch b/debian/patches/st-scroll-view-Remove-scrollbars-references-on-dispose.patch
3311index fe8ec0b..f5f49be 100644
3312--- a/debian/patches/st-scroll-view-Remove-scrollbars-references-on-dispose.patch
3313+++ b/debian/patches/st-scroll-view-Remove-scrollbars-references-on-dispose.patch
3314@@ -14,7 +14,7 @@ Forwarded: yes, https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/190
3315 1 file changed, 2 insertions(+), 5 deletions(-)
3316
3317 diff --git a/src/st/st-scroll-view.c b/src/st/st-scroll-view.c
3318-index b9aaff2..6a0928a 100644
3319+index a8b6d2e..cb38aef 100644
3320 --- a/src/st/st-scroll-view.c
3321 +++ b/src/st/st-scroll-view.c
3322 @@ -244,11 +244,8 @@ st_scroll_view_dispose (GObject *object)
3323diff --git a/debian/patches/tools-fix-XDG-desktop-syntax-in-gnome-shell-overrides-mig.patch b/debian/patches/tools-fix-XDG-desktop-syntax-in-gnome-shell-overrides-mig.patch
3324deleted file mode 100644
3325index 30b0f83..0000000
3326--- a/debian/patches/tools-fix-XDG-desktop-syntax-in-gnome-shell-overrides-mig.patch
3327+++ /dev/null
3328@@ -1,25 +0,0 @@
3329-From: Olivier Blin <dev@blino.org>
3330-Date: Fri, 3 Aug 2018 00:35:24 +0200
3331-Subject: tools: fix XDG desktop syntax in gnome-shell-overrides-migration
3332-
3333-Reported by desktop-file-validate:
3334-error: value "True" for boolean key "NoDisplay" in group "Desktop
3335-Entry" contains invalid characters, boolean values must be "false" or
3336-"true"
3337-
3338-Origin: upstream, 3.29.91, commit:1fca09037416659e452bd722574e1d5a248f522d
3339----
3340- data/gnome-shell-overrides-migration.desktop.in | 2 +-
3341- 1 file changed, 1 insertion(+), 1 deletion(-)
3342-
3343-diff --git a/data/gnome-shell-overrides-migration.desktop.in b/data/gnome-shell-overrides-migration.desktop.in
3344-index 8ef86ac..99452e6 100644
3345---- a/data/gnome-shell-overrides-migration.desktop.in
3346-+++ b/data/gnome-shell-overrides-migration.desktop.in
3347-@@ -1,5 +1,5 @@
3348- [Desktop Entry]
3349- Type=Application
3350- Name=GNOME settings overrides migration
3351--NoDisplay=True
3352-+NoDisplay=true
3353- Exec=@libexecdir@/gnome-shell-overrides-migration.sh
3354diff --git a/debian/patches/ubuntu/desktop_detect.patch b/debian/patches/ubuntu/desktop_detect.patch
3355index fd5f6df..c245854 100644
3356--- a/debian/patches/ubuntu/desktop_detect.patch
3357+++ b/debian/patches/ubuntu/desktop_detect.patch
3358@@ -14,10 +14,10 @@ Origin: ubuntu
3359 create mode 100644 js/misc/desktop.js
3360
3361 diff --git a/js/js-resources.gresource.xml b/js/js-resources.gresource.xml
3362-index 3c0feab..a4d0e4d 100644
3363+index 75a6c3b..c42e4a3 100644
3364 --- a/js/js-resources.gresource.xml
3365 +++ b/js/js-resources.gresource.xml
3366-@@ -13,6 +13,7 @@
3367+@@ -11,6 +11,7 @@
3368
3369 <file>misc/config.js</file>
3370 <file>misc/extensionUtils.js</file>
3371diff --git a/debian/patches/ubuntu/lightdm-user-switching.patch b/debian/patches/ubuntu/lightdm-user-switching.patch
3372index 0ef5155..628934d 100644
3373--- a/debian/patches/ubuntu/lightdm-user-switching.patch
3374+++ b/debian/patches/ubuntu/lightdm-user-switching.patch
3375@@ -12,10 +12,10 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685794
3376 1 file changed, 27 insertions(+), 7 deletions(-)
3377
3378 diff --git a/js/misc/systemActions.js b/js/misc/systemActions.js
3379-index bf8b460..fffa567 100644
3380+index 434dd95..2be7c0e 100644
3381 --- a/js/misc/systemActions.js
3382 +++ b/js/misc/systemActions.js
3383-@@ -218,6 +218,21 @@ const SystemActions = new Lang.Class({
3384+@@ -219,6 +219,21 @@ const SystemActions = new Lang.Class({
3385 return this._actions.get(LOCK_ORIENTATION_ACTION_ID).iconName;
3386 },
3387
3388@@ -37,7 +37,7 @@ index bf8b460..fffa567 100644
3389 _sensorProxyAppeared() {
3390 this._sensorProxy = new SensorProxy(Gio.DBus.system, SENSOR_BUS_NAME, SENSOR_OBJECT_PATH,
3391 (proxy, error) => {
3392-@@ -313,7 +328,7 @@ const SystemActions = new Lang.Class({
3393+@@ -314,7 +329,7 @@ const SystemActions = new Lang.Class({
3394 _updateLockScreen() {
3395 let showLock = !Main.sessionMode.isLocked && !Main.sessionMode.isGreeter;
3396 let allowLockScreen = !this._lockdownSettings.get_boolean(DISABLE_LOCK_SCREEN_KEY);
3397@@ -46,7 +46,7 @@ index bf8b460..fffa567 100644
3398 this.notify('can-lock-screen');
3399 },
3400
3401-@@ -400,20 +415,25 @@ const SystemActions = new Lang.Class({
3402+@@ -401,20 +416,25 @@ const SystemActions = new Lang.Class({
3403 if (!this._actions.get(LOCK_SCREEN_ACTION_ID).available)
3404 throw new Error('The lock-screen action is not available!');
3405
3406diff --git a/debian/patches/workspace-Fix-infinite-loop-when-finding-parent-window-of.patch b/debian/patches/workspace-Fix-infinite-loop-when-finding-parent-window-of.patch
3407deleted file mode 100644
3408index a9dd41a..0000000
3409--- a/debian/patches/workspace-Fix-infinite-loop-when-finding-parent-window-of.patch
3410+++ /dev/null
3411@@ -1,46 +0,0 @@
3412-From: verdre <gitlab@v0yd.nl>
3413-Date: Mon, 23 Jul 2018 14:22:34 +0200
3414-Subject: workspace: Fix infinite loop when finding parent window of dialogs
3415-
3416-When a dialog is added to a window while the overview is shown, we get
3417-its parent using get_transient_for() so we can add it to the right
3418-window clone.
3419-
3420-If we have multiple layers of dialogs we have to do this recursively
3421-until we find the root ancestor. This case currently results in an
3422-infinite loop: Since parent is always set to the same window, the
3423-while-condition will always be true.
3424-
3425-Bug: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/180
3426-Origin: upstream, 3.29.91, commit:52cbc299a795b4573a7558982115354cfa7a4e61
3427----
3428- js/ui/workspace.js | 2 +-
3429- js/ui/workspaceThumbnail.js | 2 +-
3430- 2 files changed, 2 insertions(+), 2 deletions(-)
3431-
3432-diff --git a/js/ui/workspace.js b/js/ui/workspace.js
3433-index a183e07..6a8e924 100644
3434---- a/js/ui/workspace.js
3435-+++ b/js/ui/workspace.js
3436-@@ -1519,7 +1519,7 @@ var Workspace = new Lang.Class({
3437- if (metaWin.is_attached_dialog()) {
3438- let parent = metaWin.get_transient_for();
3439- while (parent.is_attached_dialog())
3440-- parent = metaWin.get_transient_for();
3441-+ parent = parent.get_transient_for();
3442-
3443- let idx = this._lookupIndex (parent);
3444- if (idx < 0) {
3445-diff --git a/js/ui/workspaceThumbnail.js b/js/ui/workspaceThumbnail.js
3446-index b1fa587..cf21e13 100644
3447---- a/js/ui/workspaceThumbnail.js
3448-+++ b/js/ui/workspaceThumbnail.js
3449-@@ -416,7 +416,7 @@ var WorkspaceThumbnail = new Lang.Class({
3450- } else if (metaWin.is_attached_dialog()) {
3451- let parent = metaWin.get_transient_for();
3452- while (parent.is_attached_dialog())
3453-- parent = metaWin.get_transient_for();
3454-+ parent = parent.get_transient_for();
3455-
3456- let idx = this._lookupIndex (parent);
3457- if (idx < 0) {
3458diff --git a/debian/patches/workspace-Simplify-detecting-added-dialogs-after-closing-.patch b/debian/patches/workspace-Simplify-detecting-added-dialogs-after-closing-.patch
3459deleted file mode 100644
3460index 2952a0e..0000000
3461--- a/debian/patches/workspace-Simplify-detecting-added-dialogs-after-closing-.patch
3462+++ /dev/null
3463@@ -1,158 +0,0 @@
3464-From: verdre <gitlab@v0yd.nl>
3465-Date: Tue, 19 Jun 2018 12:45:18 +0200
3466-Subject: workspace: Simplify detecting added dialogs after closing a window
3467-
3468-When trying to close a window in the overview by clicking the close
3469-button and the window doesn't get closed but a dialog is added to the
3470-window afterwards, we close the overview and show the dialog.
3471-
3472-Instead of adding a separate listener for the window-added signal to the
3473-WindowOverlay, let the WindowClones remember that the close button was
3474-pressed and activate themselves if a dialog is added after that.
3475-
3476-Bug: https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/180
3477-Origin: upstream, 3.29.91, commit:da2fc2c9d3135d59bb355e739f24d540f844fb3d
3478----
3479- js/ui/workspace.js | 80 +++++++++++++++++++-----------------------------------
3480- 1 file changed, 28 insertions(+), 52 deletions(-)
3481-
3482-diff --git a/js/ui/workspace.js b/js/ui/workspace.js
3483-index 6a8e924..5aa9ba6 100644
3484---- a/js/ui/workspace.js
3485-+++ b/js/ui/workspace.js
3486-@@ -179,6 +179,7 @@ var WindowClone = new Lang.Class({
3487- this.inDrag = false;
3488-
3489- this._selected = false;
3490-+ this._closeRequested = false;
3491- },
3492-
3493- set slot(slot) {
3494-@@ -194,7 +195,6 @@ var WindowClone = new Lang.Class({
3495-
3496- deleteAll() {
3497- // Delete all windows, starting from the bottom-most (most-modal) one
3498--
3499- let windows = this.actor.get_children();
3500- for (let i = windows.length - 1; i >= 1; i--) {
3501- let realWindow = windows[i].source;
3502-@@ -204,11 +204,24 @@ var WindowClone = new Lang.Class({
3503- }
3504-
3505- this.metaWindow.delete(global.get_current_time());
3506-+ this._closeRequested = true;
3507- },
3508-
3509-- addAttachedDialog(win) {
3510-- this._doAddAttachedDialog(win, win.get_compositor_private());
3511-- this._onMetaWindowSizeChanged();
3512-+ addDialog(win) {
3513-+ let parent = win.get_transient_for();
3514-+ while (parent.is_attached_dialog())
3515-+ parent = parent.get_transient_for();
3516-+
3517-+ // Display dialog if it is attached to our metaWindow
3518-+ if (win.is_attached_dialog() && parent == this.metaWindow) {
3519-+ this._doAddAttachedDialog(win, win.get_compositor_private());
3520-+ this._onMetaWindowSizeChanged();
3521-+ }
3522-+
3523-+ // The dialog popped up after the user tried to close the window,
3524-+ // assume it's a close confirmation and leave the overview
3525-+ if (this._closeRequested)
3526-+ this._activate();
3527- },
3528-
3529- hasAttachedDialogs() {
3530-@@ -462,14 +475,12 @@ var WindowOverlay = new Lang.Class({
3531- button._overlap = 0;
3532-
3533- this._idleToggleCloseId = 0;
3534-- button.connect('clicked', this._closeWindow.bind(this));
3535-+ button.connect('clicked', () => this._windowClone.deleteAll());
3536-
3537- windowClone.actor.connect('destroy', this._onDestroy.bind(this));
3538- windowClone.connect('show-chrome', this._onShowChrome.bind(this));
3539- windowClone.connect('hide-chrome', this._onHideChrome.bind(this));
3540-
3541-- this._windowAddedId = 0;
3542--
3543- button.hide();
3544- title.hide();
3545-
3546-@@ -590,43 +601,12 @@ var WindowOverlay = new Lang.Class({
3547- Tweener.addTween(actor, params);
3548- },
3549-
3550-- _closeWindow(actor) {
3551-- let metaWindow = this._windowClone.metaWindow;
3552-- this._workspace = metaWindow.get_workspace();
3553--
3554-- this._windowAddedId = this._workspace.connect('window-added',
3555-- this._onWindowAdded.bind(this));
3556--
3557-- this._windowClone.deleteAll();
3558-- },
3559--
3560- _windowCanClose() {
3561- return this._windowClone.metaWindow.can_close() &&
3562- !this._windowClone.hasAttachedDialogs();
3563- },
3564-
3565-- _onWindowAdded(workspace, win) {
3566-- let metaWindow = this._windowClone.metaWindow;
3567--
3568-- if (win.get_transient_for() == metaWindow) {
3569-- workspace.disconnect(this._windowAddedId);
3570-- this._windowAddedId = 0;
3571--
3572-- // use an idle handler to avoid mapping problems -
3573-- // see comment in Workspace._windowAdded
3574-- let id = Mainloop.idle_add(() => {
3575-- this._windowClone.emit('selected');
3576-- return GLib.SOURCE_REMOVE;
3577-- });
3578-- GLib.Source.set_name_by_id(id, '[gnome-shell] this._windowClone.emit');
3579-- }
3580-- },
3581--
3582- _onDestroy() {
3583-- if (this._windowAddedId > 0) {
3584-- this._workspace.disconnect(this._windowAddedId);
3585-- this._windowAddedId = 0;
3586-- }
3587- if (this._idleToggleCloseId > 0) {
3588- Mainloop.source_remove(this._idleToggleCloseId);
3589- this._idleToggleCloseId = 0;
3590-@@ -1516,21 +1496,17 @@ var Workspace = new Lang.Class({
3591- return;
3592-
3593- if (!this._isOverviewWindow(win)) {
3594-- if (metaWin.is_attached_dialog()) {
3595-- let parent = metaWin.get_transient_for();
3596-- while (parent.is_attached_dialog())
3597-- parent = parent.get_transient_for();
3598--
3599-- let idx = this._lookupIndex (parent);
3600-- if (idx < 0) {
3601-- // parent was not created yet, it will take care
3602-- // of the dialog when created
3603-- return;
3604-- }
3605-+ if (metaWin.get_transient_for() == null)
3606-+ return;
3607-
3608-- let clone = this._windows[idx];
3609-- clone.addAttachedDialog(metaWin);
3610-- }
3611-+ // Let the top-most ancestor handle all transients
3612-+ let parent = metaWin.find_root_ancestor();
3613-+ let clone = this._windows.find(c => c.metaWindow == parent);
3614-+
3615-+ // If no clone was found, the parent hasn't been created yet
3616-+ // and will take care of the dialog when added
3617-+ if (clone)
3618-+ clone.addDialog(metaWin);
3619-
3620- return;
3621- }
3622diff --git a/docs/reference/shell/meson.build b/docs/reference/shell/meson.build
3623index 1469ed4..a32d6a5 100644
3624--- a/docs/reference/shell/meson.build
3625+++ b/docs/reference/shell/meson.build
3626@@ -50,8 +50,7 @@ gnome.gtkdoc('shell',
3627 join_paths(meson.build_root(), 'src')
3628 ],
3629 scan_args: [
3630- '--ignore-headers=' + ' '.join(private_headers + exclude_directories),
3631- '--rebuild-types'
3632+ '--ignore-headers=' + ' '.join(private_headers + exclude_directories)
3633 ],
3634 install: true
3635 )
3636diff --git a/docs/reference/st/meson.build b/docs/reference/st/meson.build
3637index fe89b53..3e9e9ab 100644
3638--- a/docs/reference/st/meson.build
3639+++ b/docs/reference/st/meson.build
3640@@ -17,8 +17,7 @@ gnome.gtkdoc('st',
3641 ],
3642 scan_args: [
3643 '--ignore-headers=' + ' '.join(private_headers),
3644- '--rebuild-sections',
3645- '--rebuild-types'
3646+ '--rebuild-sections'
3647 ],
3648 install: true
3649 )
3650diff --git a/js/extensionPrefs/main.js b/js/extensionPrefs/main.js
3651index a30b46b..80b8d5c 100644
3652--- a/js/extensionPrefs/main.js
3653+++ b/js/extensionPrefs/main.js
3654@@ -14,15 +14,16 @@ const _ = Gettext.gettext;
3655 const Config = imports.misc.config;
3656 const ExtensionUtils = imports.misc.extensionUtils;
3657
3658-const GnomeShellIface = '<node> \
3659-<interface name="org.gnome.Shell.Extensions"> \
3660-<signal name="ExtensionStatusChanged"> \
3661- <arg type="s" name="uuid"/> \
3662- <arg type="i" name="state"/> \
3663- <arg type="s" name="error"/> \
3664-</signal> \
3665-</interface> \
3666-</node>';
3667+const GnomeShellIface = `
3668+<node>
3669+<interface name="org.gnome.Shell.Extensions">
3670+<signal name="ExtensionStatusChanged">
3671+ <arg type="s" name="uuid"/>
3672+ <arg type="i" name="state"/>
3673+ <arg type="s" name="error"/>
3674+</signal>
3675+</interface>
3676+</node>`;
3677
3678 const GnomeShellProxy = Gio.DBusProxy.makeProxyWrapper(GnomeShellIface);
3679
3680diff --git a/js/gdm/fingerprint.js b/js/gdm/fingerprint.js
3681index 2aeb377..91025b9 100644
3682--- a/js/gdm/fingerprint.js
3683+++ b/js/gdm/fingerprint.js
3684@@ -5,13 +5,14 @@ const Lang = imports.lang;
3685 const Shell = imports.gi.Shell;
3686 const Signals = imports.signals;
3687
3688-const FprintManagerIface = '<node> \
3689-<interface name="net.reactivated.Fprint.Manager"> \
3690-<method name="GetDefaultDevice"> \
3691- <arg type="o" direction="out" /> \
3692-</method> \
3693-</interface> \
3694-</node>';
3695+const FprintManagerIface = `
3696+<node>
3697+<interface name="net.reactivated.Fprint.Manager">
3698+<method name="GetDefaultDevice">
3699+ <arg type="o" direction="out" />
3700+</method>
3701+</interface>
3702+</node>`;
3703
3704 const FprintManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(FprintManagerIface);
3705
3706diff --git a/js/gdm/oVirt.js b/js/gdm/oVirt.js
3707index 8a6a545..8194c20 100644
3708--- a/js/gdm/oVirt.js
3709+++ b/js/gdm/oVirt.js
3710@@ -4,13 +4,13 @@ const Gio = imports.gi.Gio;
3711 const Lang = imports.lang;
3712 const Signals = imports.signals;
3713
3714-const OVirtCredentialsIface = '<node> \
3715-<interface name="org.ovirt.vdsm.Credentials"> \
3716-<signal name="UserAuthenticated"> \
3717- <arg type="s" name="token"/> \
3718-</signal> \
3719-</interface> \
3720-</node>';
3721+const OVirtCredentialsIface =`<node>
3722+<interface name="org.ovirt.vdsm.Credentials">
3723+<signal name="UserAuthenticated">
3724+ <arg type="s" name="token"/>
3725+</signal>
3726+</interface>
3727+</node>`;
3728
3729 const OVirtCredentialsInfo = Gio.DBusInterfaceInfo.new_for_xml(OVirtCredentialsIface);
3730
3731diff --git a/js/gdm/realmd.js b/js/gdm/realmd.js
3732index 9aa27d9..ae87aa1 100644
3733--- a/js/gdm/realmd.js
3734+++ b/js/gdm/realmd.js
3735@@ -5,58 +5,61 @@ const Lang = imports.lang;
3736 const Shell = imports.gi.Shell;
3737 const Signals = imports.signals;
3738
3739-const ProviderIface = '<node> \
3740-<interface name="org.freedesktop.realmd.Provider"> \
3741- <property name="Name" type="s" access="read"/> \
3742- <property name="Version" type="s" access="read"/> \
3743- <property name="Realms" type="ao" access="read"/> \
3744- <method name="Discover"> \
3745- <arg name="string" type="s" direction="in"/> \
3746- <arg name="options" type="a{sv}" direction="in"/> \
3747- <arg name="relevance" type="i" direction="out"/> \
3748- <arg name="realm" type="ao" direction="out"/> \
3749- </method> \
3750-</interface> \
3751-</node>';
3752+const ProviderIface = `
3753+<node>
3754+<interface name="org.freedesktop.realmd.Provider">
3755+ <property name="Name" type="s" access="read"/>
3756+ <property name="Version" type="s" access="read"/>
3757+ <property name="Realms" type="ao" access="read"/>
3758+ <method name="Discover">
3759+ <arg name="string" type="s" direction="in"/>
3760+ <arg name="options" type="a{sv}" direction="in"/>
3761+ <arg name="relevance" type="i" direction="out"/>
3762+ <arg name="realm" type="ao" direction="out"/>
3763+ </method>
3764+</interface>
3765+</node>`;
3766 const Provider = Gio.DBusProxy.makeProxyWrapper(ProviderIface);
3767
3768-const ServiceIface = '<node> \
3769-<interface name="org.freedesktop.realmd.Service"> \
3770- <method name="Cancel"> \
3771- <arg name="operation" type="s" direction="in"/> \
3772- </method> \
3773- <method name="Release" /> \
3774- <method name="SetLocale"> \
3775- <arg name="locale" type="s" direction="in"/> \
3776- </method> \
3777- <signal name="Diagnostics"> \
3778- <arg name="data" type="s"/> \
3779- <arg name="operation" type="s"/> \
3780- </signal> \
3781-</interface> \
3782-</node>';
3783+const ServiceIface = `
3784+<node>
3785+<interface name="org.freedesktop.realmd.Service">
3786+ <method name="Cancel">
3787+ <arg name="operation" type="s" direction="in"/>
3788+ </method>
3789+ <method name="Release" />
3790+ <method name="SetLocale">
3791+ <arg name="locale" type="s" direction="in"/>
3792+ </method>
3793+ <signal name="Diagnostics">
3794+ <arg name="data" type="s"/>
3795+ <arg name="operation" type="s"/>
3796+ </signal>
3797+</interface>
3798+</node>`;
3799 const Service = Gio.DBusProxy.makeProxyWrapper(ServiceIface);
3800
3801-const RealmIface = '<node> \
3802-<interface name="org.freedesktop.realmd.Realm"> \
3803- <property name="Name" type="s" access="read"/> \
3804- <property name="Configured" type="s" access="read"/> \
3805- <property name="Details" type="a(ss)" access="read"/> \
3806- <property name="LoginFormats" type="as" access="read"/> \
3807- <property name="LoginPolicy" type="s" access="read"/> \
3808- <property name="PermittedLogins" type="as" access="read"/> \
3809- <property name="SupportedInterfaces" type="as" access="read"/> \
3810- <method name="ChangeLoginPolicy"> \
3811- <arg name="login_policy" type="s" direction="in"/> \
3812- <arg name="permitted_add" type="as" direction="in"/> \
3813- <arg name="permitted_remove" type="as" direction="in"/> \
3814- <arg name="options" type="a{sv}" direction="in"/> \
3815- </method> \
3816- <method name="Deconfigure"> \
3817- <arg name="options" type="a{sv}" direction="in"/> \
3818- </method> \
3819-</interface> \
3820-</node>';
3821+const RealmIface = `
3822+<node>
3823+<interface name="org.freedesktop.realmd.Realm">
3824+ <property name="Name" type="s" access="read"/>
3825+ <property name="Configured" type="s" access="read"/>
3826+ <property name="Details" type="a(ss)" access="read"/>
3827+ <property name="LoginFormats" type="as" access="read"/>
3828+ <property name="LoginPolicy" type="s" access="read"/>
3829+ <property name="PermittedLogins" type="as" access="read"/>
3830+ <property name="SupportedInterfaces" type="as" access="read"/>
3831+ <method name="ChangeLoginPolicy">
3832+ <arg name="login_policy" type="s" direction="in"/>
3833+ <arg name="permitted_add" type="as" direction="in"/>
3834+ <arg name="permitted_remove" type="as" direction="in"/>
3835+ <arg name="options" type="a{sv}" direction="in"/>
3836+ </method>
3837+ <method name="Deconfigure">
3838+ <arg name="options" type="a{sv}" direction="in"/>
3839+ </method>
3840+</interface>
3841+</node>`;
3842 const Realm = Gio.DBusProxy.makeProxyWrapper(RealmIface);
3843
3844 var Manager = new Lang.Class({
3845diff --git a/js/js-resources.gresource.xml b/js/js-resources.gresource.xml
3846index 3c0feab..75a6c3b 100644
3847--- a/js/js-resources.gresource.xml
3848+++ b/js/js-resources.gresource.xml
3849@@ -9,8 +9,6 @@
3850 <file>gdm/realmd.js</file>
3851 <file>gdm/util.js</file>
3852
3853- <file>extensionPrefs/main.js</file>
3854-
3855 <file>misc/config.js</file>
3856 <file>misc/extensionUtils.js</file>
3857 <file>misc/fileUtils.js</file>
3858@@ -33,8 +31,6 @@
3859 <file>perf/core.js</file>
3860 <file>perf/hwtest.js</file>
3861
3862- <file>portalHelper/main.js</file>
3863-
3864 <file>ui/accessDialog.js</file>
3865 <file>ui/altTab.js</file>
3866 <file>ui/animation.js</file>
3867diff --git a/js/meson.build b/js/meson.build
3868index dd8ca3f..4a572c5 100644
3869--- a/js/meson.build
3870+++ b/js/meson.build
3871@@ -6,3 +6,17 @@ js_resources = gnome.compile_resources(
3872 c_name: 'shell_js_resources',
3873 dependencies: [config_js]
3874 )
3875+
3876+portal_resources = gnome.compile_resources(
3877+ 'portal-resources', 'portal-resources.gresource.xml',
3878+ source_dir: ['.', meson.current_build_dir()],
3879+ c_name: 'portal_js_resources',
3880+ dependencies: [config_js]
3881+)
3882+
3883+prefs_resources = gnome.compile_resources(
3884+ 'prefs-resources', 'prefs-resources.gresource.xml',
3885+ source_dir: ['.', meson.current_build_dir()],
3886+ c_name: 'prefs_js_resources',
3887+ dependencies: [config_js]
3888+)
3889diff --git a/js/misc/gnomeSession.js b/js/misc/gnomeSession.js
3890index 4c5d7f2..15a2202 100644
3891--- a/js/misc/gnomeSession.js
3892+++ b/js/misc/gnomeSession.js
3893@@ -4,17 +4,18 @@ const Gio = imports.gi.Gio;
3894 const Lang = imports.lang;
3895 const Signals = imports.signals;
3896
3897-const PresenceIface = '<node> \
3898-<interface name="org.gnome.SessionManager.Presence"> \
3899-<method name="SetStatus"> \
3900- <arg type="u" direction="in"/> \
3901-</method> \
3902-<property name="status" type="u" access="readwrite"/> \
3903-<signal name="StatusChanged"> \
3904- <arg type="u" direction="out"/> \
3905-</signal> \
3906-</interface> \
3907-</node>';
3908+const PresenceIface = `
3909+<node>
3910+<interface name="org.gnome.SessionManager.Presence">
3911+<method name="SetStatus">
3912+ <arg type="u" direction="in"/>
3913+</method>
3914+<property name="status" type="u" access="readwrite"/>
3915+<signal name="StatusChanged">
3916+ <arg type="u" direction="out"/>
3917+</signal>
3918+</interface>
3919+</node>`;
3920
3921 var PresenceStatus = {
3922 AVAILABLE: 0,
3923@@ -32,16 +33,17 @@ function Presence(initCallback, cancellable) {
3924 // Note inhibitors are immutable objects, so they don't
3925 // change at runtime (changes always come in the form
3926 // of new inhibitors)
3927-const InhibitorIface = '<node> \
3928-<interface name="org.gnome.SessionManager.Inhibitor"> \
3929-<method name="GetAppId"> \
3930- <arg type="s" direction="out" /> \
3931-</method> \
3932-<method name="GetReason"> \
3933- <arg type="s" direction="out" /> \
3934-</method> \
3935-</interface> \
3936-</node>';
3937+const InhibitorIface = `
3938+<node>
3939+<interface name="org.gnome.SessionManager.Inhibitor">
3940+<method name="GetAppId">
3941+ <arg type="s" direction="out" />
3942+</method>
3943+<method name="GetReason">
3944+ <arg type="s" direction="out" />
3945+</method>
3946+</interface>
3947+</node>`;
3948
3949 var InhibitorProxy = Gio.DBusProxy.makeProxyWrapper(InhibitorIface);
3950 function Inhibitor(objectPath, initCallback, cancellable) {
3951@@ -49,29 +51,30 @@ function Inhibitor(objectPath, initCallback, cancellable) {
3952 }
3953
3954 // Not the full interface, only the methods we use
3955-const SessionManagerIface = '<node> \
3956-<interface name="org.gnome.SessionManager"> \
3957-<method name="Logout"> \
3958- <arg type="u" direction="in" /> \
3959-</method> \
3960-<method name="Shutdown" /> \
3961-<method name="Reboot" /> \
3962-<method name="CanShutdown"> \
3963- <arg type="b" direction="out" /> \
3964-</method> \
3965-<method name="IsInhibited"> \
3966- <arg type="u" direction="in" /> \
3967- <arg type="b" direction="out" /> \
3968-</method> \
3969-<property name="SessionIsActive" type="b" access="read"/> \
3970-<signal name="InhibitorAdded"> \
3971- <arg type="o" direction="out"/> \
3972-</signal> \
3973-<signal name="InhibitorRemoved"> \
3974- <arg type="o" direction="out"/> \
3975-</signal> \
3976-</interface> \
3977-</node>';
3978+const SessionManagerIface = `
3979+<node>
3980+<interface name="org.gnome.SessionManager">
3981+<method name="Logout">
3982+ <arg type="u" direction="in" />
3983+</method>
3984+<method name="Shutdown" />
3985+<method name="Reboot" />
3986+<method name="CanShutdown">
3987+ <arg type="b" direction="out" />
3988+</method>
3989+<method name="IsInhibited">
3990+ <arg type="u" direction="in" />
3991+ <arg type="b" direction="out" />
3992+</method>
3993+<property name="SessionIsActive" type="b" access="read"/>
3994+<signal name="InhibitorAdded">
3995+ <arg type="o" direction="out"/>
3996+</signal>
3997+<signal name="InhibitorRemoved">
3998+ <arg type="o" direction="out"/>
3999+</signal>
4000+</interface>
4001+</node>`;
4002
4003 var SessionManagerProxy = Gio.DBusProxy.makeProxyWrapper(SessionManagerIface);
4004 function SessionManager(initCallback, cancellable) {
4005diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js
4006index 59b3d78..320a6cc 100644
4007--- a/js/misc/inputMethod.js
4008+++ b/js/misc/inputMethod.js
4009@@ -17,6 +17,8 @@ var InputMethod = new Lang.Class({
4010 this._currentFocus = null;
4011 this._currentEvent = null;
4012 this._doForwardEvent = false;
4013+ this._preeditStr = '';
4014+ this._preeditPos = 0;
4015 this._ibus = IBus.Bus.new_async();
4016 this._ibus.connect('connected', this._onConnected.bind(this));
4017 this._ibus.connect('disconnected', this._clear.bind(this));
4018@@ -69,6 +71,8 @@ var InputMethod = new Lang.Class({
4019 this._context.connect('commit-text', this._onCommitText.bind(this));
4020 this._context.connect('delete-surrounding-text', this._onDeleteSurroundingText.bind(this));
4021 this._context.connect('update-preedit-text', this._onUpdatePreeditText.bind(this));
4022+ this._context.connect('show-preedit-text', this._onShowPreeditText.bind(this));
4023+ this._context.connect('hide-preedit-text', this._onHidePreeditText.bind(this));
4024 this._context.connect('forward-key-event', this._onForwardKeyEvent.bind(this));
4025
4026 this._updateCapabilities();
4027@@ -79,6 +83,8 @@ var InputMethod = new Lang.Class({
4028 this._hints = 0;
4029 this._purpose = 0;
4030 this._enabled = false;
4031+ this._preeditStr = ''
4032+ this._preeditPos = 0;
4033 },
4034
4035 _emitRequestSurrounding() {
4036@@ -95,11 +101,22 @@ var InputMethod = new Lang.Class({
4037 },
4038
4039 _onUpdatePreeditText(context, text, pos, visible) {
4040- let str = null;
4041- if (visible && text != null)
4042- str = text.get_text();
4043+ if (text == null)
4044+ return;
4045+ this._preeditStr = text.get_text();
4046+ this._preeditPos = pos;
4047+ if (visible)
4048+ this.set_preedit_text(this._preeditStr, pos);
4049+ else
4050+ this.set_preedit_text(null, pos);
4051+ },
4052+
4053+ _onShowPreeditText(context) {
4054+ this.set_preedit_text(this._preeditStr, this._preeditPos);
4055+ },
4056
4057- this.set_preedit_text(str, pos);
4058+ _onHidePreeditText(context) {
4059+ this.set_preedit_text(null, this._preeditPos);
4060 },
4061
4062 _onForwardKeyEvent(context, keyval, keycode, state) {
4063diff --git a/js/misc/loginManager.js b/js/misc/loginManager.js
4064index ccda382..b5891a3 100644
4065--- a/js/misc/loginManager.js
4066+++ b/js/misc/loginManager.js
4067@@ -7,53 +7,56 @@ const Mainloop = imports.mainloop;
4068 const Shell = imports.gi.Shell;
4069 const Signals = imports.signals;
4070
4071-const SystemdLoginManagerIface = '<node> \
4072-<interface name="org.freedesktop.login1.Manager"> \
4073-<method name="Suspend"> \
4074- <arg type="b" direction="in"/> \
4075-</method> \
4076-<method name="CanSuspend"> \
4077- <arg type="s" direction="out"/> \
4078-</method> \
4079-<method name="Inhibit"> \
4080- <arg type="s" direction="in"/> \
4081- <arg type="s" direction="in"/> \
4082- <arg type="s" direction="in"/> \
4083- <arg type="s" direction="in"/> \
4084- <arg type="h" direction="out"/> \
4085-</method> \
4086-<method name="GetSession"> \
4087- <arg type="s" direction="in"/> \
4088- <arg type="o" direction="out"/> \
4089-</method> \
4090-<method name="ListSessions"> \
4091- <arg name="sessions" type="a(susso)" direction="out"/> \
4092-</method> \
4093-<signal name="PrepareForSleep"> \
4094- <arg type="b" direction="out"/> \
4095-</signal> \
4096-</interface> \
4097-</node>';
4098-
4099-const SystemdLoginSessionIface = '<node> \
4100-<interface name="org.freedesktop.login1.Session"> \
4101-<signal name="Lock" /> \
4102-<signal name="Unlock" /> \
4103-<property name="Active" type="b" access="read" /> \
4104-<property name="Class" type="s" access="read" /> \
4105-<property name="Id" type="s" access="read" /> \
4106-<method name="SetLockedHint"> \
4107- <arg type="b" direction="in"/> \
4108-</method> \
4109-</interface> \
4110-</node>';
4111-
4112-const SystemdLoginUserIface = '<node> \
4113-<interface name="org.freedesktop.login1.User"> \
4114-<property name="Display" type="(so)" access="read" /> \
4115-<property name="Sessions" type="a(so)" access="read" /> \
4116-</interface> \
4117-</node>';
4118+const SystemdLoginManagerIface = `
4119+<node>
4120+<interface name="org.freedesktop.login1.Manager">
4121+<method name="Suspend">
4122+ <arg type="b" direction="in"/>
4123+</method>
4124+<method name="CanSuspend">
4125+ <arg type="s" direction="out"/>
4126+</method>
4127+<method name="Inhibit">
4128+ <arg type="s" direction="in"/>
4129+ <arg type="s" direction="in"/>
4130+ <arg type="s" direction="in"/>
4131+ <arg type="s" direction="in"/>
4132+ <arg type="h" direction="out"/>
4133+</method>
4134+<method name="GetSession">
4135+ <arg type="s" direction="in"/>
4136+ <arg type="o" direction="out"/>
4137+</method>
4138+<method name="ListSessions">
4139+ <arg name="sessions" type="a(susso)" direction="out"/>
4140+</method>
4141+<signal name="PrepareForSleep">
4142+ <arg type="b" direction="out"/>
4143+</signal>
4144+</interface>
4145+</node>`;
4146+
4147+const SystemdLoginSessionIface = `
4148+<node>
4149+<interface name="org.freedesktop.login1.Session">
4150+<signal name="Lock" />
4151+<signal name="Unlock" />
4152+<property name="Active" type="b" access="read" />
4153+<property name="Class" type="s" access="read" />
4154+<property name="Id" type="s" access="read" />
4155+<method name="SetLockedHint">
4156+ <arg type="b" direction="in"/>
4157+</method>
4158+</interface>
4159+</node>`;
4160+
4161+const SystemdLoginUserIface = `
4162+<node>
4163+<interface name="org.freedesktop.login1.User">
4164+<property name="Display" type="(so)" access="read" />
4165+<property name="Sessions" type="a(so)" access="read" />
4166+</interface>
4167+</node>`;
4168
4169 const SystemdLoginManager = Gio.DBusProxy.makeProxyWrapper(SystemdLoginManagerIface);
4170 const SystemdLoginSession = Gio.DBusProxy.makeProxyWrapper(SystemdLoginSessionIface);
4171diff --git a/js/misc/modemManager.js b/js/misc/modemManager.js
4172index 7ef265a..c473937 100644
4173--- a/js/misc/modemManager.js
4174+++ b/js/misc/modemManager.js
4175@@ -92,41 +92,43 @@ function _findProviderForSid(sid) {
4176 // The following are not the complete interfaces, just the methods we need
4177 // (or may need in the future)
4178
4179-const ModemGsmNetworkInterface = '<node> \
4180-<interface name="org.freedesktop.ModemManager.Modem.Gsm.Network"> \
4181-<method name="GetRegistrationInfo"> \
4182- <arg type="(uss)" direction="out" /> \
4183-</method> \
4184-<method name="GetSignalQuality"> \
4185- <arg type="u" direction="out" /> \
4186-</method> \
4187-<property name="AccessTechnology" type="u" access="read" /> \
4188-<signal name="SignalQuality"> \
4189- <arg type="u" direction="out" /> \
4190-</signal> \
4191-<signal name="RegistrationInfo"> \
4192- <arg type="u" direction="out" /> \
4193- <arg type="s" direction="out" /> \
4194- <arg type="s" direction="out" /> \
4195-</signal> \
4196-</interface> \
4197-</node>';
4198+const ModemGsmNetworkInterface = `
4199+<node>
4200+<interface name="org.freedesktop.ModemManager.Modem.Gsm.Network">
4201+<method name="GetRegistrationInfo">
4202+ <arg type="(uss)" direction="out" />
4203+</method>
4204+<method name="GetSignalQuality">
4205+ <arg type="u" direction="out" />
4206+</method>
4207+<property name="AccessTechnology" type="u" access="read" />
4208+<signal name="SignalQuality">
4209+ <arg type="u" direction="out" />
4210+</signal>
4211+<signal name="RegistrationInfo">
4212+ <arg type="u" direction="out" />
4213+ <arg type="s" direction="out" />
4214+ <arg type="s" direction="out" />
4215+</signal>
4216+</interface>
4217+</node>`;
4218
4219 const ModemGsmNetworkProxy = Gio.DBusProxy.makeProxyWrapper(ModemGsmNetworkInterface);
4220
4221-const ModemCdmaInterface = '<node> \
4222-<interface name="org.freedesktop.ModemManager.Modem.Cdma"> \
4223-<method name="GetSignalQuality"> \
4224- <arg type="u" direction="out" /> \
4225-</method> \
4226-<method name="GetServingSystem"> \
4227- <arg type="(usu)" direction="out" /> \
4228-</method> \
4229-<signal name="SignalQuality"> \
4230- <arg type="u" direction="out" /> \
4231-</signal> \
4232-</interface> \
4233-</node>';
4234+const ModemCdmaInterface = `
4235+<node>
4236+<interface name="org.freedesktop.ModemManager.Modem.Cdma">
4237+<method name="GetSignalQuality">
4238+ <arg type="u" direction="out" />
4239+</method>
4240+<method name="GetServingSystem">
4241+ <arg type="(usu)" direction="out" />
4242+</method>
4243+<signal name="SignalQuality">
4244+ <arg type="u" direction="out" />
4245+</signal>
4246+</interface>
4247+</node>`;
4248
4249 const ModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(ModemCdmaInterface);
4250
4251@@ -222,26 +224,29 @@ Signals.addSignalMethods(ModemCdma.prototype);
4252 // Support for the new ModemManager1 interface (MM >= 0.7)
4253 //------------------------------------------------------------------------------
4254
4255-const BroadbandModemInterface = '<node> \
4256-<interface name="org.freedesktop.ModemManager1.Modem"> \
4257-<property name="SignalQuality" type="(ub)" access="read" /> \
4258-</interface> \
4259-</node>';
4260+const BroadbandModemInterface = `
4261+<node>
4262+<interface name="org.freedesktop.ModemManager1.Modem">
4263+<property name="SignalQuality" type="(ub)" access="read" />
4264+</interface>
4265+</node>`;
4266 const BroadbandModemProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModemInterface);
4267
4268-const BroadbandModem3gppInterface = '<node> \
4269-<interface name="org.freedesktop.ModemManager1.Modem.Modem3gpp"> \
4270-<property name="OperatorCode" type="s" access="read" /> \
4271-<property name="OperatorName" type="s" access="read" /> \
4272-</interface> \
4273-</node>';
4274+const BroadbandModem3gppInterface = `
4275+<node>
4276+<interface name="org.freedesktop.ModemManager1.Modem.Modem3gpp">
4277+<property name="OperatorCode" type="s" access="read" />
4278+<property name="OperatorName" type="s" access="read" />
4279+</interface>
4280+</node>`;
4281 const BroadbandModem3gppProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModem3gppInterface);
4282
4283-const BroadbandModemCdmaInterface = '<node> \
4284-<interface name="org.freedesktop.ModemManager1.Modem.ModemCdma"> \
4285-<property name="Sid" type="u" access="read" /> \
4286-</interface> \
4287-</node>';
4288+const BroadbandModemCdmaInterface = `
4289+<node>
4290+<interface name="org.freedesktop.ModemManager1.Modem.ModemCdma">
4291+<property name="Sid" type="u" access="read" />
4292+</interface>
4293+</node>`;
4294 const BroadbandModemCdmaProxy = Gio.DBusProxy.makeProxyWrapper(BroadbandModemCdmaInterface);
4295
4296 var BroadbandModem = new Lang.Class({
4297diff --git a/js/misc/objectManager.js b/js/misc/objectManager.js
4298index 1ce4f83..efe669b 100644
4299--- a/js/misc/objectManager.js
4300+++ b/js/misc/objectManager.js
4301@@ -8,21 +8,22 @@ const Signals = imports.signals;
4302
4303 // Specified in the D-Bus specification here:
4304 // http://dbus.freedesktop.org/doc/dbus-specification.html#standard-interfaces-objectmanager
4305-const ObjectManagerIface = '<node> \
4306-<interface name="org.freedesktop.DBus.ObjectManager"> \
4307- <method name="GetManagedObjects"> \
4308- <arg name="objects" type="a{oa{sa{sv}}}" direction="out"/> \
4309- </method> \
4310- <signal name="InterfacesAdded"> \
4311- <arg name="objectPath" type="o"/> \
4312- <arg name="interfaces" type="a{sa{sv}}" /> \
4313- </signal> \
4314- <signal name="InterfacesRemoved"> \
4315- <arg name="objectPath" type="o"/> \
4316- <arg name="interfaces" type="as" /> \
4317- </signal> \
4318-</interface> \
4319-</node>';
4320+const ObjectManagerIface = `
4321+<node>
4322+<interface name="org.freedesktop.DBus.ObjectManager">
4323+ <method name="GetManagedObjects">
4324+ <arg name="objects" type="a{oa{sa{sv}}}" direction="out"/>
4325+ </method>
4326+ <signal name="InterfacesAdded">
4327+ <arg name="objectPath" type="o"/>
4328+ <arg name="interfaces" type="a{sa{sv}}" />
4329+ </signal>
4330+ <signal name="InterfacesRemoved">
4331+ <arg name="objectPath" type="o"/>
4332+ <arg name="interfaces" type="as" />
4333+ </signal>
4334+</interface>
4335+</node>`;
4336
4337 const ObjectManagerInfo = Gio.DBusInterfaceInfo.new_for_xml(ObjectManagerIface);
4338
4339diff --git a/js/misc/permissionStore.js b/js/misc/permissionStore.js
4340index 86c0cd8..6126e1f 100644
4341--- a/js/misc/permissionStore.js
4342+++ b/js/misc/permissionStore.js
4343@@ -2,30 +2,31 @@
4344
4345 const Gio = imports.gi.Gio;
4346
4347-const PermissionStoreIface = '<node> \
4348- <interface name="org.freedesktop.impl.portal.PermissionStore"> \
4349- <method name="Lookup"> \
4350- <arg name="table" type="s" direction="in"/> \
4351- <arg name="id" type="s" direction="in"/> \
4352- <arg name="permissions" type="a{sas}" direction="out"/> \
4353- <arg name="data" type="v" direction="out"/> \
4354- </method> \
4355- <method name="Set"> \
4356- <arg name="table" type="s" direction="in"/> \
4357- <arg name="create" type="b" direction="in"/> \
4358- <arg name="id" type="s" direction="in"/> \
4359- <arg name="app_permissions" type="a{sas}" direction="in"/> \
4360- <arg name="data" type="v" direction="in"/> \
4361- </method> \
4362- <signal name="Changed"> \
4363- <arg name="table" type="s" direction="out"/> \
4364- <arg name="id" type="s" direction="out"/> \
4365- <arg name="deleted" type="b" direction="out"/> \
4366- <arg name="data" type="v" direction="out"/> \
4367- <arg name="permissions" type="a{sas}" direction="out"/> \
4368- </signal> \
4369- </interface> \
4370-</node>';
4371+const PermissionStoreIface = `
4372+<node>
4373+ <interface name="org.freedesktop.impl.portal.PermissionStore">
4374+ <method name="Lookup">
4375+ <arg name="table" type="s" direction="in"/>
4376+ <arg name="id" type="s" direction="in"/>
4377+ <arg name="permissions" type="a{sas}" direction="out"/>
4378+ <arg name="data" type="v" direction="out"/>
4379+ </method>
4380+ <method name="Set">
4381+ <arg name="table" type="s" direction="in"/>
4382+ <arg name="create" type="b" direction="in"/>
4383+ <arg name="id" type="s" direction="in"/>
4384+ <arg name="app_permissions" type="a{sas}" direction="in"/>
4385+ <arg name="data" type="v" direction="in"/>
4386+ </method>
4387+ <signal name="Changed">
4388+ <arg name="table" type="s" direction="out"/>
4389+ <arg name="id" type="s" direction="out"/>
4390+ <arg name="deleted" type="b" direction="out"/>
4391+ <arg name="data" type="v" direction="out"/>
4392+ <arg name="permissions" type="a{sas}" direction="out"/>
4393+ </signal>
4394+ </interface>
4395+</node>`;
4396
4397 const PermissionStoreProxy = Gio.DBusProxy.makeProxyWrapper(PermissionStoreIface);
4398
4399diff --git a/js/misc/smartcardManager.js b/js/misc/smartcardManager.js
4400index 60808b3..51d2ea9 100644
4401--- a/js/misc/smartcardManager.js
4402+++ b/js/misc/smartcardManager.js
4403@@ -7,14 +7,15 @@ const Signals = imports.signals;
4404
4405 const ObjectManager = imports.misc.objectManager;
4406
4407-const SmartcardTokenIface = '<node> \
4408-<interface name="org.gnome.SettingsDaemon.Smartcard.Token"> \
4409- <property name="Name" type="s" access="read"/> \
4410- <property name="Driver" type="o" access="read"/> \
4411- <property name="IsInserted" type="b" access="read"/> \
4412- <property name="UsedToLogin" type="b" access="read"/> \
4413-</interface> \
4414-</node>';
4415+const SmartcardTokenIface = `
4416+<node>
4417+<interface name="org.gnome.SettingsDaemon.Smartcard.Token">
4418+ <property name="Name" type="s" access="read"/>
4419+ <property name="Driver" type="o" access="read"/>
4420+ <property name="IsInserted" type="b" access="read"/>
4421+ <property name="UsedToLogin" type="b" access="read"/>
4422+</interface>
4423+</node>`;
4424
4425 let _smartcardManager = null;
4426
4427diff --git a/js/misc/systemActions.js b/js/misc/systemActions.js
4428index bf8b460..434dd95 100644
4429--- a/js/misc/systemActions.js
4430+++ b/js/misc/systemActions.js
4431@@ -22,11 +22,12 @@ const ALWAYS_SHOW_LOG_OUT_KEY = 'always-show-log-out';
4432 const SENSOR_BUS_NAME = 'net.hadess.SensorProxy';
4433 const SENSOR_OBJECT_PATH = '/net/hadess/SensorProxy';
4434
4435-const SensorProxyInterface = '<node> \
4436-<interface name="net.hadess.SensorProxy"> \
4437- <property name="HasAccelerometer" type="b" access="read"/> \
4438-</interface> \
4439-</node>';
4440+const SensorProxyInterface = `
4441+<node>
4442+<interface name="net.hadess.SensorProxy">
4443+ <property name="HasAccelerometer" type="b" access="read"/>
4444+</interface>
4445+</node>`;
4446
4447 const POWER_OFF_ACTION_ID = 'power-off';
4448 const LOCK_SCREEN_ACTION_ID = 'lock-screen';
4449diff --git a/js/portal-resources.gresource.xml b/js/portal-resources.gresource.xml
4450new file mode 100644
4451index 0000000..3a06747
4452--- /dev/null
4453+++ b/js/portal-resources.gresource.xml
4454@@ -0,0 +1,7 @@
4455+<?xml version="1.0" encoding="UTF-8"?>
4456+<gresources>
4457+ <gresource prefix="/org/gnome/shell">
4458+ <file>misc/config.js</file>
4459+ <file>portalHelper/main.js</file>
4460+ </gresource>
4461+</gresources>
4462diff --git a/js/portalHelper/main.js b/js/portalHelper/main.js
4463index 838af46..e112f82 100644
4464--- a/js/portalHelper/main.js
4465+++ b/js/portalHelper/main.js
4466@@ -30,25 +30,26 @@ const CONNECTIVITY_CHECK_HOST = 'nmcheck.gnome.org';
4467 const CONNECTIVITY_CHECK_URI = 'http://' + CONNECTIVITY_CHECK_HOST;
4468 const CONNECTIVITY_RECHECK_RATELIMIT_TIMEOUT = 30 * GLib.USEC_PER_SEC;
4469
4470-const HelperDBusInterface = '<node> \
4471-<interface name="org.gnome.Shell.PortalHelper"> \
4472-<method name="Authenticate"> \
4473- <arg type="o" direction="in" name="connection" /> \
4474- <arg type="s" direction="in" name="url" /> \
4475- <arg type="u" direction="in" name="timestamp" /> \
4476-</method> \
4477-<method name="Close"> \
4478- <arg type="o" direction="in" name="connection" /> \
4479-</method> \
4480-<method name="Refresh"> \
4481- <arg type="o" direction="in" name="connection" /> \
4482-</method> \
4483-<signal name="Done"> \
4484- <arg type="o" name="connection" /> \
4485- <arg type="u" name="result" /> \
4486-</signal> \
4487-</interface> \
4488-</node>';
4489+const HelperDBusInterface = `
4490+<node>
4491+<interface name="org.gnome.Shell.PortalHelper">
4492+<method name="Authenticate">
4493+ <arg type="o" direction="in" name="connection" />
4494+ <arg type="s" direction="in" name="url" />
4495+ <arg type="u" direction="in" name="timestamp" />
4496+</method>
4497+<method name="Close">
4498+ <arg type="o" direction="in" name="connection" />
4499+</method>
4500+<method name="Refresh">
4501+ <arg type="o" direction="in" name="connection" />
4502+</method>
4503+<signal name="Done">
4504+ <arg type="o" name="connection" />
4505+ <arg type="u" name="result" />
4506+</signal>
4507+</interface>
4508+</node>`;
4509
4510 var PortalHeaderBar = new Lang.Class({
4511 Name: 'PortalHeaderBar',
4512diff --git a/js/prefs-resources.gresource.xml b/js/prefs-resources.gresource.xml
4513new file mode 100644
4514index 0000000..653c4cb
4515--- /dev/null
4516+++ b/js/prefs-resources.gresource.xml
4517@@ -0,0 +1,11 @@
4518+<?xml version="1.0" encoding="UTF-8"?>
4519+<gresources>
4520+ <gresource prefix="/org/gnome/shell">
4521+ <file>extensionPrefs/main.js</file>
4522+
4523+ <file>misc/config.js</file>
4524+ <file>misc/extensionUtils.js</file>
4525+ <file>misc/fileUtils.js</file>
4526+ <file>misc/params.js</file>
4527+ </gresource>
4528+</gresources>
4529diff --git a/js/ui/accessDialog.js b/js/ui/accessDialog.js
4530index 1bd9004..bb59ee5 100644
4531--- a/js/ui/accessDialog.js
4532+++ b/js/ui/accessDialog.js
4533@@ -10,27 +10,29 @@ const CheckBox = imports.ui.checkBox;
4534 const Dialog = imports.ui.dialog;
4535 const ModalDialog = imports.ui.modalDialog;
4536
4537-const RequestIface = '<node> \
4538-<interface name="org.freedesktop.impl.portal.Request"> \
4539-<method name="Close"/> \
4540-</interface> \
4541-</node>';
4542-
4543-const AccessIface = '<node> \
4544-<interface name="org.freedesktop.impl.portal.Access"> \
4545-<method name="AccessDialog"> \
4546- <arg type="o" name="handle" direction="in"/> \
4547- <arg type="s" name="app_id" direction="in"/> \
4548- <arg type="s" name="parent_window" direction="in"/> \
4549- <arg type="s" name="title" direction="in"/> \
4550- <arg type="s" name="subtitle" direction="in"/> \
4551- <arg type="s" name="body" direction="in"/> \
4552- <arg type="a{sv}" name="options" direction="in"/> \
4553- <arg type="u" name="response" direction="out"/> \
4554- <arg type="a{sv}" name="results" direction="out"/> \
4555-</method> \
4556-</interface> \
4557-</node>';
4558+const RequestIface = `
4559+<node>
4560+<interface name="org.freedesktop.impl.portal.Request">
4561+<method name="Close"/>
4562+</interface>
4563+</node>`;
4564+
4565+const AccessIface = `
4566+<node>
4567+<interface name="org.freedesktop.impl.portal.Access">
4568+<method name="AccessDialog">
4569+ <arg type="o" name="handle" direction="in"/>
4570+ <arg type="s" name="app_id" direction="in"/>
4571+ <arg type="s" name="parent_window" direction="in"/>
4572+ <arg type="s" name="title" direction="in"/>
4573+ <arg type="s" name="subtitle" direction="in"/>
4574+ <arg type="s" name="body" direction="in"/>
4575+ <arg type="a{sv}" name="options" direction="in"/>
4576+ <arg type="u" name="response" direction="out"/>
4577+ <arg type="a{sv}" name="results" direction="out"/>
4578+</method>
4579+</interface>
4580+</node>`;
4581
4582 var DialogResponse = {
4583 OK: 0,
4584diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
4585index 785b9f7..623dc6f 100644
4586--- a/js/ui/appDisplay.js
4587+++ b/js/ui/appDisplay.js
4588@@ -66,11 +66,12 @@ var PAGE_SWITCH_TIME = 0.3;
4589 const SWITCHEROO_BUS_NAME = 'net.hadess.SwitcherooControl';
4590 const SWITCHEROO_OBJECT_PATH = '/net/hadess/SwitcherooControl';
4591
4592-const SwitcherooProxyInterface = '<node> \
4593-<interface name="net.hadess.SwitcherooControl"> \
4594- <property name="HasDualGpu" type="b" access="read"/> \
4595-</interface> \
4596-</node>';
4597+const SwitcherooProxyInterface = `
4598+<node>
4599+<interface name="net.hadess.SwitcherooControl">
4600+ <property name="HasDualGpu" type="b" access="read"/>
4601+</interface>
4602+</node>`;
4603
4604 const SwitcherooProxy = Gio.DBusProxy.makeProxyWrapper(SwitcherooProxyInterface);
4605 let discreteGpuAvailable = false;
4606diff --git a/js/ui/audioDeviceSelection.js b/js/ui/audioDeviceSelection.js
4607index de8af09..8010ec1 100644
4608--- a/js/ui/audioDeviceSelection.js
4609+++ b/js/ui/audioDeviceSelection.js
4610@@ -15,18 +15,19 @@ var AudioDevice = {
4611 MICROPHONE: 1 << 2
4612 };
4613
4614-const AudioDeviceSelectionIface = '<node> \
4615-<interface name="org.gnome.Shell.AudioDeviceSelection"> \
4616-<method name="Open"> \
4617- <arg name="devices" direction="in" type="as" /> \
4618-</method> \
4619-<method name="Close"> \
4620-</method> \
4621-<signal name="DeviceSelected"> \
4622- <arg name="device" type="s" /> \
4623-</signal> \
4624-</interface> \
4625-</node>';
4626+const AudioDeviceSelectionIface = `
4627+<node>
4628+<interface name="org.gnome.Shell.AudioDeviceSelection">
4629+<method name="Open">
4630+ <arg name="devices" direction="in" type="as" />
4631+</method>
4632+<method name="Close">
4633+</method>
4634+<signal name="DeviceSelected">
4635+ <arg name="device" type="s" />
4636+</signal>
4637+</interface>
4638+</node>`;
4639
4640 var AudioDeviceSelectionDialog = new Lang.Class({
4641 Name: 'AudioDeviceSelectionDialog',
4642diff --git a/js/ui/boxpointer.js b/js/ui/boxpointer.js
4643index 47f718a..d51877d 100644
4644--- a/js/ui/boxpointer.js
4645+++ b/js/ui/boxpointer.js
4646@@ -44,6 +44,7 @@ var BoxPointer = new Lang.Class({
4647 y_fill: true });
4648 this._container = new Shell.GenericContainer();
4649 this.actor.set_child(this._container);
4650+ this.actor.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
4651 this._container.connect('get-preferred-width', this._getPreferredWidth.bind(this));
4652 this._container.connect('get-preferred-height', this._getPreferredHeight.bind(this));
4653 this._container.connect('allocate', this._allocate.bind(this));
4654diff --git a/js/ui/calendar.js b/js/ui/calendar.js
4655index 651aac6..990cac2 100644
4656--- a/js/ui/calendar.js
4657+++ b/js/ui/calendar.js
4658@@ -134,18 +134,19 @@ var EmptyEventSource = new Lang.Class({
4659 });
4660 Signals.addSignalMethods(EmptyEventSource.prototype);
4661
4662-const CalendarServerIface = '<node> \
4663-<interface name="org.gnome.Shell.CalendarServer"> \
4664-<method name="GetEvents"> \
4665- <arg type="x" direction="in" /> \
4666- <arg type="x" direction="in" /> \
4667- <arg type="b" direction="in" /> \
4668- <arg type="a(sssbxxa{sv})" direction="out" /> \
4669-</method> \
4670-<property name="HasCalendars" type="b" access="read" /> \
4671-<signal name="Changed" /> \
4672-</interface> \
4673-</node>';
4674+const CalendarServerIface = `
4675+<node>
4676+<interface name="org.gnome.Shell.CalendarServer">
4677+<method name="GetEvents">
4678+ <arg type="x" direction="in" />
4679+ <arg type="x" direction="in" />
4680+ <arg type="b" direction="in" />
4681+ <arg type="a(sssbxxa{sv})" direction="out" />
4682+</method>
4683+<property name="HasCalendars" type="b" access="read" />
4684+<signal name="Changed" />
4685+</interface>
4686+</node>`;
4687
4688 const CalendarServerInfo = Gio.DBusInterfaceInfo.new_for_xml(CalendarServerIface);
4689
4690diff --git a/js/ui/components/autorunManager.js b/js/ui/components/autorunManager.js
4691index bbd7328..37c774c 100644
4692--- a/js/ui/components/autorunManager.js
4693+++ b/js/ui/components/autorunManager.js
4694@@ -74,14 +74,15 @@ function startAppForMount(app, mount) {
4695
4696 /******************************************/
4697
4698-const HotplugSnifferIface = '<node> \
4699-<interface name="org.gnome.Shell.HotplugSniffer"> \
4700-<method name="SniffURI"> \
4701- <arg type="s" direction="in" /> \
4702- <arg type="as" direction="out" /> \
4703-</method> \
4704-</interface> \
4705-</node>';
4706+const HotplugSnifferIface = `
4707+<node>
4708+<interface name="org.gnome.Shell.HotplugSniffer">
4709+<method name="SniffURI">
4710+ <arg type="s" direction="in" />
4711+ <arg type="as" direction="out" />
4712+</method>
4713+</interface>
4714+</node>`;
4715
4716 const HotplugSnifferProxy = Gio.DBusProxy.makeProxyWrapper(HotplugSnifferIface);
4717 function HotplugSniffer() {
4718diff --git a/js/ui/components/networkAgent.js b/js/ui/components/networkAgent.js
4719index 5bd648a..998fcb7 100644
4720--- a/js/ui/components/networkAgent.js
4721+++ b/js/ui/components/networkAgent.js
4722@@ -506,8 +506,12 @@ var VPNRequestHandler = new Lang.Class({
4723 try {
4724 data = this._dataStdout.peek_buffer();
4725
4726- keyfile.load_from_data(data.toString(), data.length,
4727- GLib.KeyFileFlags.NONE);
4728+ if (data instanceof Uint8Array)
4729+ data = imports.byteArray.toGBytes(data);
4730+ else
4731+ data = data.toGBytes();
4732+
4733+ keyfile.load_from_bytes(data, GLib.KeyFileFlags.NONE);
4734
4735 if (keyfile.get_integer(VPN_UI_GROUP, 'Version') != 2)
4736 throw new Error('Invalid plugin keyfile version, is %d');
4737diff --git a/js/ui/dash.js b/js/ui/dash.js
4738index 5ee2476..9b8bfdd 100644
4739--- a/js/ui/dash.js
4740+++ b/js/ui/dash.js
4741@@ -402,6 +402,7 @@ var Dash = new Lang.Class({
4742 clip_to_allocation: true });
4743 this._box._delegate = this;
4744 this._container.add_actor(this._box);
4745+ this._container.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
4746
4747 this._showAppsIcon = new ShowAppsIcon();
4748 this._showAppsIcon.childScale = 1;
4749diff --git a/js/ui/dialog.js b/js/ui/dialog.js
4750index cfa192d..0dd3370 100644
4751--- a/js/ui/dialog.js
4752+++ b/js/ui/dialog.js
4753@@ -40,6 +40,7 @@ var Dialog = new Lang.Class({
4754 // mode accordingly so wrapped labels are handled correctly during
4755 // size requests.
4756 this._dialog.request_mode = Clutter.RequestMode.HEIGHT_FOR_WIDTH;
4757+ this._dialog.set_offscreen_redirect(Clutter.OffscreenRedirect.ALWAYS);
4758
4759 this.contentLayout = new St.BoxLayout({ vertical: true,
4760 style_class: "modal-dialog-content-box" });
4761diff --git a/js/ui/endSessionDialog.js b/js/ui/endSessionDialog.js
4762index 5491fbb..a6b928c 100644
4763--- a/js/ui/endSessionDialog.js
4764+++ b/js/ui/endSessionDialog.js
4765@@ -43,22 +43,23 @@ const _DIALOG_ICON_SIZE = 48;
4766
4767 var GSM_SESSION_MANAGER_LOGOUT_FORCE = 2;
4768
4769-const EndSessionDialogIface = '<node> \
4770-<interface name="org.gnome.SessionManager.EndSessionDialog"> \
4771-<method name="Open"> \
4772- <arg type="u" direction="in" /> \
4773- <arg type="u" direction="in" /> \
4774- <arg type="u" direction="in" /> \
4775- <arg type="ao" direction="in" /> \
4776-</method> \
4777-<method name="Close" /> \
4778-<signal name="ConfirmedLogout" /> \
4779-<signal name="ConfirmedReboot" /> \
4780-<signal name="ConfirmedShutdown" /> \
4781-<signal name="Canceled" /> \
4782-<signal name="Closed" /> \
4783-</interface> \
4784-</node>';
4785+const EndSessionDialogIface = `
4786+<node>
4787+<interface name="org.gnome.SessionManager.EndSessionDialog">
4788+<method name="Open">
4789+ <arg type="u" direction="in" />
4790+ <arg type="u" direction="in" />
4791+ <arg type="u" direction="in" />
4792+ <arg type="ao" direction="in" />
4793+</method>
4794+<method name="Close" />
4795+<signal name="ConfirmedLogout" />
4796+<signal name="ConfirmedReboot" />
4797+<signal name="ConfirmedShutdown" />
4798+<signal name="Canceled" />
4799+<signal name="Closed" />
4800+</interface>
4801+</node>`;
4802
4803 const logoutDialogContent = {
4804 subjectWithUser: C_("title", "Log Out %s"),
4805@@ -168,39 +169,42 @@ const DialogContent = {
4806
4807 var MAX_USERS_IN_SESSION_DIALOG = 5;
4808
4809-const LogindSessionIface = '<node> \
4810-<interface name="org.freedesktop.login1.Session"> \
4811- <property name="Id" type="s" access="read"/> \
4812- <property name="Remote" type="b" access="read"/> \
4813- <property name="Class" type="s" access="read"/> \
4814- <property name="Type" type="s" access="read"/> \
4815- <property name="State" type="s" access="read"/> \
4816-</interface> \
4817-</node>';
4818+const LogindSessionIface = `
4819+<node>
4820+<interface name="org.freedesktop.login1.Session">
4821+ <property name="Id" type="s" access="read"/>
4822+ <property name="Remote" type="b" access="read"/>
4823+ <property name="Class" type="s" access="read"/>
4824+ <property name="Type" type="s" access="read"/>
4825+ <property name="State" type="s" access="read"/>
4826+</interface>
4827+</node>`;
4828
4829 const LogindSession = Gio.DBusProxy.makeProxyWrapper(LogindSessionIface);
4830
4831-const PkOfflineIface = '<node> \
4832-<interface name="org.freedesktop.PackageKit.Offline"> \
4833- <property name="UpdatePrepared" type="b" access="read"/> \
4834- <property name="UpdateTriggered" type="b" access="read"/> \
4835- <property name="UpgradePrepared" type="b" access="read"/> \
4836- <property name="UpgradeTriggered" type="b" access="read"/> \
4837- <property name="PreparedUpgrade" type="a{sv}" access="read"/> \
4838- <method name="Trigger"> \
4839- <arg type="s" name="action" direction="in"/> \
4840- </method> \
4841- <method name="Cancel"/> \
4842-</interface> \
4843-</node>';
4844+const PkOfflineIface = `
4845+<node>
4846+<interface name="org.freedesktop.PackageKit.Offline">
4847+ <property name="UpdatePrepared" type="b" access="read"/>
4848+ <property name="UpdateTriggered" type="b" access="read"/>
4849+ <property name="UpgradePrepared" type="b" access="read"/>
4850+ <property name="UpgradeTriggered" type="b" access="read"/>
4851+ <property name="PreparedUpgrade" type="a{sv}" access="read"/>
4852+ <method name="Trigger">
4853+ <arg type="s" name="action" direction="in"/>
4854+ </method>
4855+ <method name="Cancel"/>
4856+</interface>
4857+</node>`;
4858
4859 const PkOfflineProxy = Gio.DBusProxy.makeProxyWrapper(PkOfflineIface);
4860
4861-const UPowerIface = '<node> \
4862-<interface name="org.freedesktop.UPower"> \
4863- <property name="OnBattery" type="b" access="read"/> \
4864-</interface> \
4865-</node>';
4866+const UPowerIface = `
4867+<node>
4868+<interface name="org.freedesktop.UPower">
4869+ <property name="OnBattery" type="b" access="read"/>
4870+</interface>
4871+</node>`;
4872
4873 const UPowerProxy = Gio.DBusProxy.makeProxyWrapper(UPowerIface);
4874
4875diff --git a/js/ui/keyboard.js b/js/ui/keyboard.js
4876index 1666a50..5d5f0e2 100644
4877--- a/js/ui/keyboard.js
4878+++ b/js/ui/keyboard.js
4879@@ -492,13 +492,18 @@ var FocusTracker = new Lang.Class({
4880
4881 _init() {
4882 this._currentWindow = null;
4883- this._currentWindowPositionId = 0;
4884
4885 global.display.connect('notify::focus-window', () => {
4886 this._setCurrentWindow(global.display.focus_window);
4887 this.emit('window-changed', this._currentWindow);
4888 });
4889
4890+ global.display.connect('grab-op-begin', (display, window, op) => {
4891+ if (window == this._currentWindow &&
4892+ (op == Meta.GrabOp.MOVING || op == Meta.GrabOp.KEYBOARD_MOVING))
4893+ this.emit('reset');
4894+ });
4895+
4896 /* Valid for wayland clients */
4897 Main.inputMethod.connect('cursor-location-changed', (o, rect) => {
4898 let newRect = { x: rect.get_x(), y: rect.get_y(), width: rect.get_width(), height: rect.get_height() };
4899@@ -520,18 +525,7 @@ var FocusTracker = new Lang.Class({
4900 },
4901
4902 _setCurrentWindow(window) {
4903- if (this._currentWindow)
4904- this._currentWindow.disconnect(this._currentWindowPositionId);
4905-
4906 this._currentWindow = window;
4907- if (window) {
4908- this._currentWindowPositionId = this._currentWindow.connect('position-changed', () => {
4909- if (global.display.get_grab_op() == Meta.GrabOp.NONE)
4910- this.emit('position-changed');
4911- else
4912- this.emit('reset');
4913- });
4914- }
4915 },
4916
4917 _setCurrentRect(rect) {
4918diff --git a/js/ui/layout.js b/js/ui/layout.js
4919index 210fb66..7a3cb22 100644
4920--- a/js/ui/layout.js
4921+++ b/js/ui/layout.js
4922@@ -204,6 +204,7 @@ var LayoutManager = new Lang.Class({
4923
4924 // Set up stage hierarchy to group all UI actors under one container.
4925 this.uiGroup = new Shell.GenericContainer({ name: 'uiGroup' });
4926+ this.uiGroup.set_flags(Clutter.ActorFlags.NO_LAYOUT);
4927 this.uiGroup.connect('allocate', (actor, box, flags) => {
4928 let children = actor.get_children();
4929 for (let i = 0; i < children.length; i++)
4930diff --git a/js/ui/magnifierDBus.js b/js/ui/magnifierDBus.js
4931index cf8b430..c796d07 100644
4932--- a/js/ui/magnifierDBus.js
4933+++ b/js/ui/magnifierDBus.js
4934@@ -9,89 +9,91 @@ const ZOOM_SERVICE_PATH = '/org/gnome/Magnifier/ZoomRegion';
4935
4936 // Subset of gnome-mag's Magnifier dbus interface -- to be expanded. See:
4937 // http://git.gnome.org/browse/gnome-mag/tree/xml/...Magnifier.xml
4938-const MagnifierIface = '<node> \
4939-<interface name="org.gnome.Magnifier"> \
4940-<method name="setActive"> \
4941- <arg type="b" direction="in" /> \
4942-</method> \
4943-<method name="isActive"> \
4944- <arg type="b" direction="out" /> \
4945-</method> \
4946-<method name="showCursor" /> \
4947-<method name="hideCursor" /> \
4948-<method name="createZoomRegion"> \
4949- <arg type="d" direction="in" /> \
4950- <arg type="d" direction="in" /> \
4951- <arg type="ai" direction="in" /> \
4952- <arg type="ai" direction="in" /> \
4953- <arg type="o" direction="out" /> \
4954-</method> \
4955-<method name="addZoomRegion"> \
4956- <arg type="o" direction="in" /> \
4957- <arg type="b" direction="out" /> \
4958-</method> \
4959-<method name="getZoomRegions"> \
4960- <arg type="ao" direction="out" /> \
4961-</method> \
4962-<method name="clearAllZoomRegions" /> \
4963-<method name="fullScreenCapable"> \
4964- <arg type="b" direction="out" /> \
4965-</method> \
4966-<method name="setCrosswireSize"> \
4967- <arg type="i" direction="in" /> \
4968-</method> \
4969-<method name="getCrosswireSize"> \
4970- <arg type="i" direction="out" /> \
4971-</method> \
4972-<method name="setCrosswireLength"> \
4973- <arg type="i" direction="in" /> \
4974-</method> \
4975-<method name="getCrosswireLength"> \
4976- <arg type="i" direction="out" /> \
4977-</method> \
4978-<method name="setCrosswireClip"> \
4979- <arg type="b" direction="in" /> \
4980-</method> \
4981-<method name="getCrosswireClip"> \
4982- <arg type="b" direction="out" /> \
4983-</method> \
4984-<method name="setCrosswireColor"> \
4985- <arg type="u" direction="in" /> \
4986-</method> \
4987-<method name="getCrosswireColor"> \
4988- <arg type="u" direction="out" /> \
4989-</method> \
4990-</interface> \
4991-</node>';
4992+const MagnifierIface = `
4993+<node>
4994+<interface name="org.gnome.Magnifier">
4995+<method name="setActive">
4996+ <arg type="b" direction="in" />
4997+</method>
4998+<method name="isActive">
4999+ <arg type="b" direction="out" />
5000+</method>
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches