on xenial help sign in
merged with unified
ea06e11Nick Dedekind
debian/changelog+12−5
@@ -1,4 +1,13 @@
1+unity8 (8.14+16.10.20160922-0ubuntu2) yakkety; urgency=medium
2+
3+ * debian/control:
4+ - Drop unity-scope-mediascanner2 to a Suggests rather than a Recommends,
5+ to ease our transition to main. It's already seeded directly in
6+ Touch, so this will only affect the Desktop variant of unity8.
7+
8+ -- Michael Terry <mterry@ubuntu.com> Mon, 03 Oct 2016 10:43:25 -0400
9+
1−unity8 (8.14+16.10.20160914-0ubuntu1) yakkety; urgency=medium
10+unity8 (8.14+16.10.20160922-0ubuntu1) yakkety; urgency=medium
2
11
3 [ Albert Astals Cid ]
12 [ Albert Astals Cid ]
4 * LVWPH: update clipItem height when list height changes (LP:
13 * LVWPH: update clipItem height when list height changes (LP:
@@ -46,14 +55,12 @@ unity8 (8.14+16.10.20160914-0ubuntu1) yakkety; urgency=medium
46 the greeter.
55 the greeter.
47
56
48 [ Lukáš Tinkl ]
57 [ Lukáš Tinkl ]
58+ * Implement edge maximizing (aka window snapping) (LP: #1602628)
49 * On the PC platform (as opposed to running on $devices), use the
59 * On the PC platform (as opposed to running on $devices), use the
50 "mute" action instead of silent mode
60 "mute" action instead of silent mode
51 * Respect Fitt's law wrt the window control buttons in panel (LP:
61 * Respect Fitt's law wrt the window control buttons in panel (LP:
52 #1611959)
62 #1611959)
53 * Fix 2 failing color-related tests
63 * Fix 2 failing color-related tests
54− * Implement edge maximizing (aka window snapping) (LP: #1602628,
55− #1611859)
56− * Implement moving windows by Alt + left mouse button
57
64
58 [ Marco Trevisan (Treviño) ]
65 [ Marco Trevisan (Treviño) ]
59 * Indicators, mocks: add fake indicators menuitem to populate mocks
66 * Indicators, mocks: add fake indicators menuitem to populate mocks
@@ -75,7 +82,7 @@ unity8 (8.14+16.10.20160914-0ubuntu1) yakkety; urgency=medium
75 * Update look of infographic a bit
82 * Update look of infographic a bit
76 * Make infographic bubbles white even on the default wallpaper.
83 * Make infographic bubbles white even on the default wallpaper.
77
84
78− -- Michał Sawicz <michal.sawicz@canonical.com> Wed, 14 Sep 2016 00:46:45 +0000
85+ -- Michał Sawicz <michal.sawicz@canonical.com> Thu, 22 Sep 2016 07:46:57 +0000
79
86
80unity8 (8.14+16.10.20160831.3-0ubuntu1) yakkety; urgency=medium
87unity8 (8.14+16.10.20160831.3-0ubuntu1) yakkety; urgency=medium
81
88
debian/control+1−1
@@ -137,7 +137,7 @@ Recommends: indicator-keyboard,
137 indicator-session,
137 indicator-session,
138 unity-greeter-session-broadcast,
138 unity-greeter-session-broadcast,
139 unity-scope-click,
139 unity-scope-click,
140− unity-scope-mediascanner2,
140+Suggests: unity-scope-mediascanner2,
141Breaks: indicator-network (<< 0.5.1+14.10.20141014),
141Breaks: indicator-network (<< 0.5.1+14.10.20141014),
142 ubuntu-touch-session (<< 0.107),
142 ubuntu-touch-session (<< 0.107),
143 unity8-greeter (<< 7.89),
143 unity8-greeter (<< 7.89),
po/de.po+34−34
@@ -8,14 +8,14 @@ msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2016-09-22 07:46+0000\n"
10"POT-Creation-Date: 2016-09-22 07:46+0000\n"
11−"PO-Revision-Date: 2016-08-28 08:35+0000\n"
11+"PO-Revision-Date: 2016-09-29 12:06+0000\n"
12−"Last-Translator: Torsten Franz <Unknown>\n"
12+"Last-Translator: Matthias Seidel <matthias.seidel@hamburg.de>\n"
13"Language-Team: German <de@li.org>\n"
13"Language-Team: German <de@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
17"Plural-Forms: nplurals=2; plural=n != 1;\n"
18−"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
18+"X-Launchpad-Export-Date: 2016-09-30 06:18+0000\n"
19"X-Generator: Launchpad (build 18204)\n"
19"X-Generator: Launchpad (build 18204)\n"
20
20
21#: plugins/LightDM/Greeter.cpp:123
21#: plugins/LightDM/Greeter.cpp:123
@@ -131,7 +131,7 @@ msgstr "Super + Leertaste"
131
131
132#: qml/Components/KeyboardShortcutsOverlay.qml:93
132#: qml/Components/KeyboardShortcutsOverlay.qml:93
133msgid "Switches to next keyboard layout."
133msgid "Switches to next keyboard layout."
134−msgstr "Zum nächsten Tastaturlayout umschalten"
134+msgstr "Wechselt zur nächsten Tastaturbelegung."
135
135
136#: qml/Components/KeyboardShortcutsOverlay.qml:101
136#: qml/Components/KeyboardShortcutsOverlay.qml:101
137msgid "Super + Shift + Space"
137msgid "Super + Shift + Space"
@@ -139,7 +139,7 @@ msgstr "Super + Hochstell + Leertaste"
139
139
140#: qml/Components/KeyboardShortcutsOverlay.qml:106
140#: qml/Components/KeyboardShortcutsOverlay.qml:106
141msgid "Switches to previous keyboard layout."
141msgid "Switches to previous keyboard layout."
142−msgstr "Zum vorherigen Tastaturlayout umschalten"
142+msgstr "Wechselt zur vorherigen Tastaturbelegung."
143
143
144#: qml/Components/KeyboardShortcutsOverlay.qml:118
144#: qml/Components/KeyboardShortcutsOverlay.qml:118
145msgid "Launcher"
145msgid "Launcher"
@@ -469,11 +469,11 @@ msgstr "Anmelden"
469
469
470#: qml/Greeter/NarrowView.qml:252
470#: qml/Greeter/NarrowView.qml:252
471msgid "Emergency"
471msgid "Emergency"
472−msgstr ""
472+msgstr "Notruf"
473
473
474#: qml/Greeter/SessionsList.qml:122
474#: qml/Greeter/SessionsList.qml:122
475msgid "Select desktop environment"
475msgid "Select desktop environment"
476−msgstr ""
476+msgstr "Arbeitsumgebung auswählen"
477
477
478#: qml/Notifications/NotificationMenuItemFactory.qml:124
478#: qml/Notifications/NotificationMenuItemFactory.qml:124
479msgid "Show password"
479msgid "Show password"
@@ -532,7 +532,7 @@ msgstr "Wird heruntergeladen"
532
532
533#: qml/Panel/Indicators/MenuItemFactory.qml:917
533#: qml/Panel/Indicators/MenuItemFactory.qml:917
534msgid "Paused, tap to resume"
534msgid "Paused, tap to resume"
535−msgstr "Pausiert, tippen Sie zum fortsetzen"
535+msgstr "Pausiert, tippen zum Fortsetzen"
536
536
537#: qml/Panel/Indicators/MenuItemFactory.qml:919
537#: qml/Panel/Indicators/MenuItemFactory.qml:919
538msgid "Canceled"
538msgid "Canceled"
@@ -544,7 +544,7 @@ msgstr "Erledigt"
544
544
545#: qml/Panel/Indicators/MenuItemFactory.qml:923
545#: qml/Panel/Indicators/MenuItemFactory.qml:923
546msgid "Failed, tap to retry"
546msgid "Failed, tap to retry"
547−msgstr "Fehlgeschlagen, tippen Sie zum Wiederholen"
547+msgstr "Fehlgeschlagen, tippen zum Wiederholen"
548
548
549#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
549#: qml/Panel/Indicators/MessageMenuItemFactory.qml:151
550#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
550#: qml/Panel/Indicators/MessageMenuItemFactory.qml:210
@@ -620,7 +620,7 @@ msgstr "Tastatursprache"
620
620
621#: qml/Wizard/Pages/20-keyboard.qml:93
621#: qml/Wizard/Pages/20-keyboard.qml:93
622msgid "Keyboard layout"
622msgid "Keyboard layout"
623−msgstr "Tastaturlayout"
623+msgstr "Tastaturbelegung"
624
624
625#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
625#: qml/Wizard/Pages/20-keyboard.qml:152 qml/Wizard/Pages/30-wifi.qml:207
626#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
626#: qml/Wizard/Pages/60-account.qml:65 qml/Wizard/Pages/77-system-update.qml:152
@@ -659,7 +659,7 @@ msgstr ""
659#: qml/Wizard/Pages/40-location.qml:105
659#: qml/Wizard/Pages/40-location.qml:105
660#, qt-format
660#, qt-format
661msgid "By selecting this option you agree to the Nokia HERE %1."
661msgid "By selecting this option you agree to the Nokia HERE %1."
662−msgstr "Mit dem Auswählen dieser Option akzeptieren Sie die Nokia HERE %1."
662+msgstr "Durch Auswahl dieser Option akzeptieren Sie die Nokia-HERE-%1."
663
663
664#: qml/Wizard/Pages/40-location.qml:106
664#: qml/Wizard/Pages/40-location.qml:106
665msgctxt "part of: Nokia HERE terms and conditions"
665msgctxt "part of: Nokia HERE terms and conditions"
@@ -676,7 +676,7 @@ msgstr "Meinen Standort nicht verwenden"
676
676
677#: qml/Wizard/Pages/40-location.qml:260
677#: qml/Wizard/Pages/40-location.qml:260
678msgid "You can change it later in System Settings."
678msgid "You can change it later in System Settings."
679−msgstr "Dies kann später in den Systemeinstellungen geändert werden."
679+msgstr "Sie können das später in den Systemeinstellungen ändern."
680
680
681#: qml/Wizard/Pages/50-timezone.qml:30
681#: qml/Wizard/Pages/50-timezone.qml:30
682msgid "Time Zone"
682msgid "Time Zone"
@@ -746,7 +746,7 @@ msgstr ""
746#: qml/Wizard/Pages/77-system-update.qml:76
746#: qml/Wizard/Pages/77-system-update.qml:76
747msgctxt "string identifying name of the update"
747msgctxt "string identifying name of the update"
748msgid "Ubuntu system"
748msgid "Ubuntu system"
749−msgstr "Ubuntu System"
749+msgstr "Ubuntu-System"
750
750
751#: qml/Wizard/Pages/77-system-update.qml:83
751#: qml/Wizard/Pages/77-system-update.qml:83
752#, qt-format
752#, qt-format
@@ -756,7 +756,7 @@ msgstr "Version %1"
756
756
757#: qml/Wizard/Pages/77-system-update.qml:102
757#: qml/Wizard/Pages/77-system-update.qml:102
758msgid "This could take a few minutes..."
758msgid "This could take a few minutes..."
759−msgstr "Dies kann ein paar Minuten dauern …"
759+msgstr "Das kann ein paar Minuten dauern …"
760
760
761#: qml/Wizard/Pages/77-system-update.qml:116
761#: qml/Wizard/Pages/77-system-update.qml:116
762msgid "Install and restart now"
762msgid "Install and restart now"
@@ -790,9 +790,9 @@ msgid ""
790"collects information about nearby cell towers and Wi-Fi hotspots around your "
790"collects information about nearby cell towers and Wi-Fi hotspots around your "
791"current location whenever your position is being found."
791"current location whenever your position is being found."
792msgstr ""
792msgstr ""
793−"Um die Standortbestimmung zu ermöglichen und zu verbessern, sammelt HERE "
793+"Zur Standortbestimmung und Verbesserung der Qualität dieser, sammelt HERE "
794−"Informationen über nahegelegene Netzwerkstationen und WLAN-Hotspots in der "
794+"Informationen über Netzwerkstationen und WLAN-Zugangspunkte in der Umgebung, "
795−"Umgebung, sobald eine Position erfasst wurde."
795+"sobald eine Position erfasst wurde."
796
796
797#: qml/Wizard/Pages/here-terms.qml:93
797#: qml/Wizard/Pages/here-terms.qml:93
798msgid ""
798msgid ""
@@ -805,7 +805,7 @@ msgstr ""
805#: qml/Wizard/Pages/here-terms.qml:106
805#: qml/Wizard/Pages/here-terms.qml:106
806#, qt-format
806#, qt-format
807msgid "By continuing, you agree to the HERE platform %1 and %2."
807msgid "By continuing, you agree to the HERE platform %1 and %2."
808−msgstr "Wenn Sie fortfahren, stimmen Sie mit den HERE %1 und %2 überein."
808+msgstr "Wenn Sie fortfahren, stimmen Sie den HERE-%1 und -%2 zu."
809
809
810#: qml/Wizard/Pages/here-terms.qml:107
810#: qml/Wizard/Pages/here-terms.qml:107
811msgid "Service Terms"
811msgid "Service Terms"
@@ -856,15 +856,15 @@ msgstr "PIN muss 4 Ziffern lang sein"
856
856
857#: qml/Wizard/Pages/password-set.qml:31
857#: qml/Wizard/Pages/password-set.qml:31
858msgid "Lock Screen Password"
858msgid "Lock Screen Password"
859−msgstr "Sperrbildschirm-Passwort"
859+msgstr "Sperrbildschirmpasswort"
860
860
861#: qml/Wizard/Pages/password-set.qml:62
861#: qml/Wizard/Pages/password-set.qml:62
862msgid "Enter at least 8 characters"
862msgid "Enter at least 8 characters"
863−msgstr "Geben Sie mindestens 8 Zeichen ein"
863+msgstr "Bitte mindestens 8 Zeichen eingeben"
864
864
865#: qml/Wizard/Pages/password-set.qml:74
865#: qml/Wizard/Pages/password-set.qml:74
866msgid "Choose password"
866msgid "Choose password"
867−msgstr "Wählen Sie ein Passwort"
867+msgstr "Passwort auswählen"
868
868
869#: qml/Wizard/Pages/password-set.qml:104
869#: qml/Wizard/Pages/password-set.qml:104
870msgid "Confirm password"
870msgid "Confirm password"
@@ -1025,9 +1025,6 @@ msgstr "Sehr schwaches Passwort"
1025#~ msgid "Sorry, incorrect passcode."
1025#~ msgid "Sorry, incorrect passcode."
1026#~ msgstr "Falsche PIN"
1026#~ msgstr "Falsche PIN"
1027
1027
1028−#~ msgid "Sorry, incorrect passphrase"
1029−#~ msgstr "Das Passwort ist nicht korrekt"
1030−
1031#, qt-format
1028#, qt-format
1032#~ msgid "Sorry, incorrect %1"
1029#~ msgid "Sorry, incorrect %1"
1033#~ msgstr "%1 falsch"
1030#~ msgstr "%1 falsch"
@@ -1059,9 +1056,6 @@ msgstr "Sehr schwaches Passwort"
1059#~ msgid "Manage Scopes"
1056#~ msgid "Manage Scopes"
1060#~ msgstr "Filter verwalten"
1057#~ msgstr "Filter verwalten"
1061
1058
1062−#~ msgid "Sorry, incorrect passphrase."
1063−#~ msgstr "Entschuldigung, falsches Passwort."
1064−
1065#~ msgid "Please re-enter"
1059#~ msgid "Please re-enter"
1066#~ msgstr "Bitte erneut eingeben"
1060#~ msgstr "Bitte erneut eingeben"
1067
1061
@@ -1103,13 +1097,6 @@ msgstr "Sehr schwaches Passwort"
1103#~ msgstr ""
1097#~ msgstr ""
1104#~ "Sie können Ihre Meinung später in den <b>Systemeinstellungen</b> ändern."
1098#~ "Sie können Ihre Meinung später in den <b>Systemeinstellungen</b> ändern."
1105
1099
1106−#~ msgid ""
1107−#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1108−#~ "conditions</a>."
1109−#~ msgstr ""
1110−#~ "Mit dem Auswählen dieser Option stimmen Sie den Nokia HERE <a "
1111−#~ "href='#'>allgemeinen Geschäftsbedingungen</a> zu."
1112−
1113#~ msgid "Not at all"
1100#~ msgid "Not at all"
1114#~ msgstr "Gar nicht"
1101#~ msgstr "Gar nicht"
1115
1102
@@ -1331,3 +1318,16 @@ msgstr "Sehr schwaches Passwort"
1331#~ msgid "Swipe from the top edge to open the notification bar"
1318#~ msgid "Swipe from the top edge to open the notification bar"
1332#~ msgstr ""
1319#~ msgstr ""
1333#~ "Vom oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
1320#~ "Vom oberen Rand her wischen, um die Benachrichtigungsleiste zu öffnen"
1321+
1322+#~ msgid "Sorry, incorrect passphrase"
1323+#~ msgstr "Falsche Passphrase."
1324+
1325+#~ msgid "Sorry, incorrect passphrase."
1326+#~ msgstr "Falsche Passphrase."
1327+
1328+#~ msgid ""
1329+#~ "By selecting this option you agree to the Nokia HERE <a href='#'>terms and "
1330+#~ "conditions</a>."
1331+#~ msgstr ""
1332+#~ "Mit dem Auswählen dieser Option stimmen Sie den <a href='#'>allgemeinen "
1333+#~ "Geschäftsbedingungen</a> von HERE zu."
po/fr.po+5−5
@@ -8,14 +8,14 @@ msgstr ""
8"Project-Id-Version: unity\n"
8"Project-Id-Version: unity\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
9"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
10"POT-Creation-Date: 2016-09-22 07:46+0000\n"
10"POT-Creation-Date: 2016-09-22 07:46+0000\n"
11−"PO-Revision-Date: 2016-08-30 15:06+0000\n"
11+"PO-Revision-Date: 2016-10-02 08:06+0000\n"
12−"Last-Translator: Jean-Marc <Unknown>\n"
12+"Last-Translator: Olivier Febwin <febwin@free.fr>\n"
13"Language-Team: French <fr@li.org>\n"
13"Language-Team: French <fr@li.org>\n"
14"MIME-Version: 1.0\n"
14"MIME-Version: 1.0\n"
15"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Type: text/plain; charset=UTF-8\n"
16"Content-Transfer-Encoding: 8bit\n"
16"Content-Transfer-Encoding: 8bit\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
17"Plural-Forms: nplurals=2; plural=n > 1;\n"
18−"X-Launchpad-Export-Date: 2016-09-27 07:03+0000\n"
18+"X-Launchpad-Export-Date: 2016-10-03 06:18+0000\n"
19"X-Generator: Launchpad (build 18204)\n"
19"X-Generator: Launchpad (build 18204)\n"
20
20
21#: plugins/LightDM/Greeter.cpp:123
21#: plugins/LightDM/Greeter.cpp:123
@@ -471,11 +471,11 @@ msgstr "Connexion"
471
471
472#: qml/Greeter/NarrowView.qml:252
472#: qml/Greeter/NarrowView.qml:252
473msgid "Emergency"
473msgid "Emergency"
474−msgstr ""
474+msgstr "Urgence"
475
475
476#: qml/Greeter/SessionsList.qml:122
476#: qml/Greeter/SessionsList.qml:122
477msgid "Select desktop environment"
477msgid "Select desktop environment"
478−msgstr ""
478+msgstr "Sélectionner l'environnement de bureau"
479
479
480#: qml/Notifications/NotificationMenuItemFactory.qml:124
480#: qml/Notifications/NotificationMenuItemFactory.qml:124
481msgid "Show password"
481msgid "Show password"
qml/Components/InputMethod.qml+1−1
@@ -21,7 +21,7 @@ import Ubuntu.Gestures 0.1
21Item {
21Item {
22 id: root
22 id: root
23
23
24− readonly property rect visibleRect: surfaceItem.surface ? surfaceItem.surface.inputBounds : Qt.rect(0, 0, 0, 0)
24+ readonly property rect visibleRect: surfaceItem.surface && visible ? surfaceItem.surface.inputBounds : Qt.rect(0, 0, 0, 0)
25
25
26 MirSurfaceItem {
26 MirSurfaceItem {
27 id: surfaceItem
27 id: surfaceItem
qml/Stage/DecoratedWindow.qml+4−16
@@ -102,16 +102,15 @@ FocusScope {
102 },
102 },
103 State {
103 State {
104 name: "normalSuspended"; when: root.scaleToPreviewProgress <= 0 && root.application.state !== ApplicationInfoInterface.Running
104 name: "normalSuspended"; when: root.scaleToPreviewProgress <= 0 && root.application.state !== ApplicationInfoInterface.Running
105+ extend: "normal"
105 PropertyChanges {
106 PropertyChanges {
106 target: root
107 target: root
107 implicitWidth: counterRotate ? applicationWindow.requestedHeight : applicationWindow.requestedWidth
108 implicitWidth: counterRotate ? applicationWindow.requestedHeight : applicationWindow.requestedWidth
108 implicitHeight: root.decorationHeight + (counterRotate ? applicationWindow.requestedWidth: applicationWindow.requestedHeight)
109 implicitHeight: root.decorationHeight + (counterRotate ? applicationWindow.requestedWidth: applicationWindow.requestedHeight)
109 }
110 }
110−// PropertyChanges { target: applicationWindow; anchors.topMargin: (root.height - applicationWindow.implicitHeight) / 2 }
111−// PropertyChanges { target: dropShadow; anchors.topMargin: (root.height - applicationWindow.implicitHeight) / 2 }
112 },
111 },
113 State {
112 State {
114− name: "preview"; when: root.scaleToPreviewProgress > 0 && root.application.state === ApplicationInfoInterface.Running
113+ name: "preview"; when: root.scaleToPreviewProgress > 0
115 PropertyChanges {
114 PropertyChanges {
116 target: root
115 target: root
117 implicitWidth: MathUtils.linearAnimation(0, 1, applicationWindow.oldRequestedWidth, root.scaleToPreviewSize, root.scaleToPreviewProgress)
116 implicitWidth: MathUtils.linearAnimation(0, 1, applicationWindow.oldRequestedWidth, root.scaleToPreviewSize, root.scaleToPreviewProgress)
@@ -125,16 +124,6 @@ FocusScope {
125 height: MathUtils.linearAnimation(0, 1, applicationWindow.oldRequestedHeight, applicationWindow.minSize, root.scaleToPreviewProgress)
124 height: MathUtils.linearAnimation(0, 1, applicationWindow.oldRequestedHeight, applicationWindow.minSize, root.scaleToPreviewProgress)
126 itemScale: root.implicitWidth / width
125 itemScale: root.implicitWidth / width
127 }
126 }
128− },
129− State {
130− name: "previewSuspended"; when: root.scaleToPreviewProgress > 0 && root.application.state !== ApplicationInfoInterface.Running
131− extend: "preview"
132− PropertyChanges { target: applicationWindow;
133− anchors.verticalCenterOffset: applicationWindow.implicitHeight < applicationWindow.height ?
134− (root.height / applicationWindow.itemScale - applicationWindow.implicitHeight) / 2
135− : (root.height / applicationWindow.itemScale - applicationWindow.height) / 2
136− }
137−// PropertyChanges { target: dropShadow; anchors.topMargin: (root.height - root.implicitHeight) / 2 * (1 - root.scaleToPreviewProgress) }
138 }
127 }
139 ]
128 ]
140 }
129 }
@@ -164,8 +153,8 @@ FocusScope {
164 ApplicationWindow {
153 ApplicationWindow {
165 id: applicationWindow
154 id: applicationWindow
166 objectName: "appWindow"
155 objectName: "appWindow"
167− anchors.verticalCenter: parent.verticalCenter
156+ anchors.top: parent.top
168− anchors.verticalCenterOffset: (root.decorationHeight * Math.min(1, root.showDecoration)) / 2
157+ anchors.topMargin: root.decorationHeight * Math.min(1, root.showDecoration)
169 anchors.left: parent.left
158 anchors.left: parent.left
170 width: implicitWidth
159 width: implicitWidth
171 height: implicitHeight
160 height: implicitHeight
@@ -201,7 +190,6 @@ FocusScope {
201 angle: rotationAngle
190 angle: rotationAngle
202 },
191 },
203 Scale {
192 Scale {
204− origin.y: (applicationWindow.implicitHeight < applicationWindow.height ? applicationWindow.implicitHeight : applicationWindow.height) / 2
205 xScale: applicationWindow.itemScale
193 xScale: applicationWindow.itemScale
206 yScale: applicationWindow.itemScale
194 yScale: applicationWindow.itemScale
207 }
195 }
qml/Stage/Spread/SpreadDelegateInputArea.qml+2−2
@@ -47,7 +47,7 @@ Item {
47
47
48 function pushDragEvent(event) {
48 function pushDragEvent(event) {
49 var currentTime = __dateTime.getCurrentTimeMs()
49 var currentTime = __dateTime.getCurrentTimeMs()
50− dragEvents.push([currentTime, event.x, event.y, getEventSpeed(currentTime, event)])
50+ dragEvents.push([currentTime, event.x - event.startX, event.y - event.startY, getEventSpeed(currentTime, event)])
51 cullOldDragEvents(currentTime)
51 cullOldDragEvents(currentTime)
52 updateSpeed()
52 updateSpeed()
53 }
53 }
@@ -77,7 +77,7 @@ Item {
77 if (dragEvents.length != 0) {
77 if (dragEvents.length != 0) {
78 var lastDrag = dragEvents[dragEvents.length-1]
78 var lastDrag = dragEvents[dragEvents.length-1]
79 var duration = Math.max(1, currentTime - lastDrag[0])
79 var duration = Math.max(1, currentTime - lastDrag[0])
80− return (event.y - lastDrag[2]) / duration
80+ return (event.y - event.startY - lastDrag[2]) / duration
81 } else {
81 } else {
82 return 0
82 return 0
83 }
83 }
qml/Stage/Stage.qml+13−6
@@ -228,8 +228,9 @@ FocusScope {
228 }
228 }
229 }
229 }
230
230
231+ readonly property bool sideStageEnabled: root.mode === "stagedWithSideStage" &&
231− readonly property bool sideStageEnabled: root.shellOrientation == Qt.LandscapeOrientation ||
232+ (root.shellOrientation == Qt.LandscapeOrientation ||
232− root.shellOrientation == Qt.InvertedLandscapeOrientation
233+ root.shellOrientation == Qt.InvertedLandscapeOrientation)
233
234
234 property var mainStageDelegate: null
235 property var mainStageDelegate: null
235 property var sideStageDelegate: null
236 property var sideStageDelegate: null
@@ -263,6 +264,12 @@ FocusScope {
263
264
264 for (var i = 0; i < appRepeater.count && (!choseMainStage || !choseSideStage); ++i) {
265 for (var i = 0; i < appRepeater.count && (!choseMainStage || !choseSideStage); ++i) {
265 var appDelegate = appRepeater.itemAt(i);
266 var appDelegate = appRepeater.itemAt(i);
267+ if (!appDelegate) {
268+ // This might happen during startup phase... If the delegate appears and claims focus
269+ // things are updated and appRepeater.itemAt(x) still returns null while appRepeater.count >= x
270+ // Lets just skip it, on startup it will be generated at a later point too...
271+ continue;
272+ }
266 if (sideStage.shown && appDelegate.stage == ApplicationInfoInterface.SideStage
273 if (sideStage.shown && appDelegate.stage == ApplicationInfoInterface.SideStage
267 && !choseSideStage) {
274 && !choseSideStage) {
268 priv.sideStageDelegate = appDelegate
275 priv.sideStageDelegate = appDelegate
@@ -927,7 +934,7 @@ FocusScope {
927 rightEdgeFocusAnimation.targetX = appDelegate.stage == ApplicationInfoInterface.SideStage ? sideStage.x : 0
934 rightEdgeFocusAnimation.targetX = appDelegate.stage == ApplicationInfoInterface.SideStage ? sideStage.x : 0
928 rightEdgeFocusAnimation.start()
935 rightEdgeFocusAnimation.start()
929 }
936 }
930− } else if (state == "windowedRightEdge") {
937+ } else if (state == "windowedRightEdge" || state == "windowed") {
931 claimFocus();
938 claimFocus();
932 } else {
939 } else {
933 focusAnimation.start()
940 focusAnimation.start()
@@ -1397,8 +1404,8 @@ FocusScope {
1397 }
1404 }
1398 },
1405 },
1399 Transition {
1406 Transition {
1400− from: "normal,maximized,maximizedLeft,maximizedRight,maximizedTop,maximizedBottom,maximizedTopLeft,maximizedTopRight,maximizedBottomLeft,maximizedBottomRight,maximizedHorizontally,maximizedVertically,fullscreen"
1407+ from: "normal,restored,maximized,maximizedLeft,maximizedRight,maximizedTop,maximizedBottom,maximizedTopLeft,maximizedTopRight,maximizedBottomLeft,maximizedBottomRight,maximizedHorizontally,maximizedVertically,fullscreen"
1401− to: "normal,maximized,maximizedLeft,maximizedRight,maximizedTop,maximizedBottom,maximizedTopLeft,maximizedTopRight,maximizedBottomLeft,maximizedBottomRight,maximizedHorizontally,maximizedVertically,fullscreen"
1408+ to: "normal,restored,maximized,maximizedLeft,maximizedRight,maximizedTop,maximizedBottom,maximizedTopLeft,maximizedTopRight,maximizedBottomLeft,maximizedBottomRight,maximizedHorizontally,maximizedVertically,fullscreen"
1402 enabled: appDelegate.animationsEnabled
1409 enabled: appDelegate.animationsEnabled
1403 SequentialAnimation {
1410 SequentialAnimation {
1404 PropertyAction { target: appDelegate; property: "visuallyMinimized" }
1411 PropertyAction { target: appDelegate; property: "visuallyMinimized" }
@@ -1583,7 +1590,7 @@ FocusScope {
1583 anchors { left: parent.left; top: parent.top; leftMargin: -height / 2; topMargin: -height / 2 + spreadMaths.closeIconOffset }
1590 anchors { left: parent.left; top: parent.top; leftMargin: -height / 2; topMargin: -height / 2 + spreadMaths.closeIconOffset }
1584 source: "graphics/window-close.svg"
1591 source: "graphics/window-close.svg"
1585 readonly property var mousePos: hoverMouseArea.mapToItem(appDelegate, hoverMouseArea.mouseX, hoverMouseArea.mouseY)
1592 readonly property var mousePos: hoverMouseArea.mapToItem(appDelegate, hoverMouseArea.mouseX, hoverMouseArea.mouseY)
1586− visible: !appDelegate.isDash
1593+ visible: !appDelegate.isDash && dragArea.distance == 0
1587 && index == spreadItem.highlightedIndex
1594 && index == spreadItem.highlightedIndex
1588 && mousePos.y < (decoratedWindow.height / 3)
1595 && mousePos.y < (decoratedWindow.height / 3)
1589 && mousePos.y > -units.gu(4)
1596 && mousePos.y > -units.gu(4)
tests/qmltests/Stage/tst_PhoneStage.qml+5
@@ -158,6 +158,11 @@ Item {
158 true /* beginTouch */, true /* endTouch */, units.gu(10), 50);
158 true /* beginTouch */, true /* endTouch */, units.gu(10), 50);
159
159
160 tryCompare(stage, "state", "spread");
160 tryCompare(stage, "state", "spread");
161+ // Make sure all the transitions have finished
162+ var appRepeater = findChild(stage, "appRepeater");
163+ for (var i = 0; i < appRepeater.count; i++) {
164+ waitUntilTransitionsEnd(appRepeater.itemAt(i));
165+ }
161 waitForRendering(stage);
166 waitForRendering(stage);
162 }
167 }
163
168
tests/qmltests/Stage/tst_TabletStage.qml+6−2
@@ -591,7 +591,7 @@ Rectangle {
591 var appDelegate = findChild(stage, "appDelegate_" + webbrowserSurfaceId);
591 var appDelegate = findChild(stage, "appDelegate_" + webbrowserSurfaceId);
592 verify(appDelegate);
592 verify(appDelegate);
593 waitForRendering(stage);
593 waitForRendering(stage);
594− compare(appDelegate.stage, ApplicationInfoInterface.MainStage);
594+ tryCompare(appDelegate, "stage", ApplicationInfoInterface.MainStage);
595
595
596 dragToSideStage(webbrowserSurfaceId);
596 dragToSideStage(webbrowserSurfaceId);
597
597
@@ -601,6 +601,10 @@ Rectangle {
601 function test_unloadSideStageByDraggingFromSideStage() {
601 function test_unloadSideStageByDraggingFromSideStage() {
602 sideStage.showNow();
602 sideStage.showNow();
603 WindowStateStorage.saveStage(webbrowserCheckBox.appId, ApplicationInfoInterface.SideStage)
603 WindowStateStorage.saveStage(webbrowserCheckBox.appId, ApplicationInfoInterface.SideStage)
604+ // WindowStateStorage is async... Lets wait for it to be fully processed...
605+ tryCompareFunction(function() {
606+ return WindowStateStorage.getStage(webbrowserCheckBox.appId, ApplicationInfoInterface.MainStage) === ApplicationInfoInterface.SideStage
607+ }, true);
604 var webbrowserSurfaceId = topSurfaceList.nextId;
608 var webbrowserSurfaceId = topSurfaceList.nextId;
605 webbrowserCheckBox.checked = true;
609 webbrowserCheckBox.checked = true;
606 waitUntilAppSurfaceShowsUp(webbrowserSurfaceId);
610 waitUntilAppSurfaceShowsUp(webbrowserSurfaceId);
@@ -608,7 +612,7 @@ Rectangle {
608 var appDelegate = findChild(stage, "appDelegate_" + webbrowserSurfaceId);
612 var appDelegate = findChild(stage, "appDelegate_" + webbrowserSurfaceId);
609 verify(appDelegate);
613 verify(appDelegate);
610 waitForRendering(stage);
614 waitForRendering(stage);
611− compare(appDelegate.stage, ApplicationInfoInterface.SideStage);
615+ tryCompare(appDelegate, "stage", ApplicationInfoInterface.SideStage);
612
616
613 dragToMainStage(webbrowserSurfaceId);
617 dragToMainStage(webbrowserSurfaceId);
614
618