on xenial help sign in
some more fixes to windowed mode (resizing etc)
commit948f3aeca38e52458d90817da3c0c26ace744949 authorMichael Zanetti <michael.zanetti@canonical.com> dateWed 14 Sep 2016, 15:44 (10 years ago) parent4da610e44c9710
4 files changed+44−39
qml/Stage/MoveHandler.qml+2−2 qml/Stage/Stage.qml+31−30 tests/qmltests/CMakeLists.txt+1−1 tests/qmltests/Stage/tst_WindowResizeArea.qml+10−6
qml/Stage/MoveHandler.qml+2−2
@@ -112,8 +112,8 @@ QtObject {
112112 // Use integer coordinate values to ensure that target is left in a pixel-aligned
113113 // position. Mouse movement could have subpixel precision, yielding a fractional
114114 // mouse position.
115− target.requestedX = Math.round(pos.x - priv.distanceX);
116− target.requestedY = Math.round(Math.max(pos.y - priv.distanceY, PanelState.panelHeight));
115+ target.windowedX = Math.round(pos.x - priv.distanceX);
116+ target.windowedY = Math.round(Math.max(pos.y - priv.distanceY, PanelState.panelHeight));
117117
118118 if (sensingPoints) { // edge/corner detection when dragging via the touch overlay
119119 if (sensingPoints.topLeft.x < priv.triggerArea && sensingPoints.topLeft.y < PanelState.panelHeight + priv.triggerArea
qml/Stage/Stage.qml+31−30
@@ -576,15 +576,15 @@ AbstractStage {
576576 // Do not write to those, they will be set by states
577577 property real requestedX: windowedX
578578 property real requestedY: windowedY
579− property int requestedWidth: windowedWidth
580− property int requestedHeight: windowedHeight
579+ property real requestedWidth: windowedWidth
580+ property real requestedHeight: windowedHeight
581581
582582 // In those are for windowed mode. Those values basically store the window's properties
583583 // when having a floating window. If you want to move/resize a window in normal mode, this is what you want to write to.
584− property int windowedX: priv.focusedAppDelegate ? priv.focusedAppDelegate.x + units.gu(3) : (normalZ - 1) * units.gu(3)
585− property int windowedY: priv.focusedAppDelegate ? priv.focusedAppDelegate.y + units.gu(3) : normalZ * units.gu(3)
586− property int windowedWidth
587− property int windowedHeight
584+ property real windowedX: priv.focusedAppDelegate ? priv.focusedAppDelegate.windowedX + units.gu(3) : (normalZ - 1) * units.gu(3)
585+ property real windowedY: priv.focusedAppDelegate ? priv.focusedAppDelegate.windowedY + units.gu(3) : normalZ * units.gu(3)
586+ property real windowedWidth
587+ property real windowedHeight
588588
589589 Binding {
590590 target: appDelegate
@@ -1116,6 +1116,7 @@ AbstractStage {
11161116 requestedWidth: appContainer.width - root.leftMargin;
11171117 requestedHeight: appContainer.height;
11181118 }
1119+ PropertyChanges { target: touchControls; enabled: true }
11191120 },
11201121 State {
11211122 name: "fullscreen"; when: appDelegate.fullscreen && !appDelegate.minimized
@@ -1135,8 +1136,6 @@ AbstractStage {
11351136 target: appDelegate
11361137 visuallyMinimized: false
11371138 visuallyMaximized: false
1138− requestedWidth: appDelegate.windowedWidth
1139− requestedHeight: appDelegate.windowedHeight
11401139 }
11411140 PropertyChanges { target: touchControls; enabled: true }
11421141 PropertyChanges { target: resizeArea; enabled: true }
@@ -1148,8 +1147,8 @@ AbstractStage {
11481147 extend: "normal"
11491148 PropertyChanges {
11501149 target: appDelegate;
1151− requestedX: restoredX;
1152− requestedY: restoredY;
1150+ windowedX: restoredX;
1151+ windowedY: restoredY;
11531152 }
11541153 },
11551154 State {
@@ -1163,10 +1162,10 @@ AbstractStage {
11631162 extend: "semiMaximized"
11641163 PropertyChanges {
11651164 target: appDelegate
1166− requestedX: root.leftMargin
1167− requestedY: PanelState.panelHeight
1168− requestedWidth: (appContainer.width - root.leftMargin)/2
1169− requestedHeight: appContainer.height - PanelState.panelHeight
1165+ windowedX: root.leftMargin
1166+ windowedY: PanelState.panelHeight
1167+ windowedWidth: (appContainer.width - root.leftMargin)/2
1168+ windowedHeight: appContainer.height - PanelState.panelHeight
11701169 }
11711170 },
11721171 State {
@@ -1174,7 +1173,7 @@ AbstractStage {
11741173 extend: "maximizedLeft"
11751174 PropertyChanges {
11761175 target: appDelegate;
1177− requestedX: (appContainer.width + root.leftMargin)/2
1176+ windowedX: (appContainer.width + root.leftMargin)/2
11781177 }
11791178 },
11801179 State {
@@ -1182,10 +1181,10 @@ AbstractStage {
11821181 extend: "semiMaximized"
11831182 PropertyChanges {
11841183 target: appDelegate
1185− requestedX: root.leftMargin
1186− requestedY: PanelState.panelHeight
1187− requestedWidth: (appContainer.width - root.leftMargin)/2
1188− requestedHeight: (appContainer.height - PanelState.panelHeight)/2
1184+ windowedX: root.leftMargin
1185+ windowedY: PanelState.panelHeight
1186+ windowedWidth: (appContainer.width - root.leftMargin)/2
1187+ windowedHeight: (appContainer.height - PanelState.panelHeight)/2
11891188 }
11901189 },
11911190 State {
@@ -1193,7 +1192,7 @@ AbstractStage {
11931192 extend: "maximizedTopLeft"
11941193 PropertyChanges {
11951194 target: appDelegate
1196− requestedX: (appContainer.width + root.leftMargin)/2
1195+ windowedX: (appContainer.width + root.leftMargin)/2
11971196 }
11981197 },
11991198 State {
@@ -1201,10 +1200,10 @@ AbstractStage {
12011200 extend: "semiMaximized"
12021201 PropertyChanges {
12031202 target: appDelegate
1204− requestedX: root.leftMargin
1205− requestedY: (appContainer.height + PanelState.panelHeight)/2
1206− requestedWidth: (appContainer.width - root.leftMargin)/2
1207− requestedHeight: appContainer.height/2
1203+ windowedX: root.leftMargin
1204+ windowedY: (appContainer.height + PanelState.panelHeight)/2
1205+ windowedWidth: (appContainer.width - root.leftMargin)/2
1206+ windowedHeight: appContainer.height/2
12081207 }
12091208 },
12101209 State {
@@ -1212,19 +1211,19 @@ AbstractStage {
12121211 extend: "maximizedBottomLeft"
12131212 PropertyChanges {
12141213 target: appDelegate
1215− requestedX: (appContainer.width + root.leftMargin)/2
1214+ windowedX: (appContainer.width + root.leftMargin)/2
12161215 }
12171216 },
12181217 State {
12191218 name: "maximizedHorizontally"; when: appDelegate.maximizedHorizontally && !appDelegate.minimized
12201219 extend: "semiMaximized"
1221− PropertyChanges { target: appDelegate; requestedX: root.leftMargin; requestedY: requestedY;
1220+ PropertyChanges { target: appDelegate; requestedX: root.leftMargin; requestedY: windowedY;
12221221 requestedWidth: appContainer.width - root.leftMargin; requestedHeight: appDelegate.windowedHeight }
12231222 },
12241223 State {
12251224 name: "maximizedVertically"; when: appDelegate.maximizedVertically && !appDelegate.minimized
12261225 extend: "semiMaximized"
1227− PropertyChanges { target: appDelegate; requestedX: requestedX; requestedY: PanelState.panelHeight;
1226+ PropertyChanges { target: appDelegate; requestedX: windowedX; requestedY: PanelState.panelHeight;
12281227 requestedWidth: appDelegate.windowedWidth; requestedHeight: appContainer.height - PanelState.panelHeight }
12291228 },
12301229 State {
@@ -1256,7 +1255,8 @@ AbstractStage {
12561255 to: "normal,restored"
12571256 enabled: appDelegate.animationsEnabled
12581257 PropertyAction { target: appDelegate; properties: "visuallyMinimized,visuallyMaximized" }
1259− UbuntuNumberAnimation { target: appDelegate; properties: "requestedX,requestedY,restoredX,restoredY,requestedWidth,requestedHeight,scale"; duration: priv.animationDuration }
1258+ UbuntuNumberAnimation { target: appDelegate; properties: "requestedX,requestedY,windowedX,windowedY,requestedWidth,requestedHeight,windowedWidth,windowedHeight,scale";
1259+ duration: priv.animationDuration }
12601260 },
12611261 Transition {
12621262 to: "minimized"
@@ -1322,11 +1322,12 @@ AbstractStage {
13221322 }
13231323 },
13241324 Transition {
1325− to: "maximized,maximizedLeft,maximizedRight,maximizedTop,maximizedBottom,maximizedTopLeft,maximizedTopRight,maximizedBottomLeft,maximizedBottomRight,maximizedHorizontally,maximizedVertically,fullscreen"
1325+ to: "normal,maximized,maximizedLeft,maximizedRight,maximizedTop,maximizedBottom,maximizedTopLeft,maximizedTopRight,maximizedBottomLeft,maximizedBottomRight,maximizedHorizontally,maximizedVertically,fullscreen"
13261326 enabled: appDelegate.animationsEnabled
13271327 SequentialAnimation {
13281328 PropertyAction { target: appDelegate; property: "visuallyMinimized" }
1329− UbuntuNumberAnimation { target: appDelegate; properties: "requestedX,requestedY,opacity,scale,requestedWidth,requestedHeight"; duration: priv.animationDuration }
1329+ UbuntuNumberAnimation { target: appDelegate; properties: "requestedX,requestedY,windowedX,windowedY,opacity,scale,requestedWidth,requestedHeight,windowedWidth,windowedHeight";
1330+ duration: priv.animationDuration }
13301331 PropertyAction { target: appDelegate; property: "visuallyMaximized" }
13311332 ScriptAction { script: { fakeRectangle.stop(); } }
13321333 }
tests/qmltests/CMakeLists.txt+1−1
@@ -92,7 +92,7 @@ add_unity8_qmltest(Stages PhoneStage)
9292add_unity8_qmltest(Stages SpreadDelegate)
9393add_unity8_qmltest(Stages SurfaceContainer)
9494add_unity8_qmltest(Stages TabletStage)
95−add_unity8_qmltest(Stages WindowResizeArea)
95+add_unity8_qmltest(Stage WindowResizeArea)
9696add_unity8_qmltest(Stage Splash)
9797add_unity8_qmltest(Stage DecoratedWindow)
9898add_unity8_qmltest(Tutorial Tutorial)
tests/qmltests/Stage/tst_WindowResizeArea.qml+10−6
@@ -20,7 +20,7 @@ import QtTest 1.0
2020import Unity.Test 0.1
2121import ".."
2222import "../../../qml/Components/PanelState"
23−import "../../../qml/Stages"
23+import "../../../qml/Stage"
2424import Ubuntu.Components 1.3
2525import Ubuntu.Components.ListItems 1.3 as ListItem
2626import Unity.Application 0.1
@@ -34,7 +34,7 @@ Item {
3434 Binding {
3535 target: PanelState
3636 property: "panelHeight"
37− value: units.gu(2)
37+ value: units.gu(3)
3838 }
3939
4040 Component {
@@ -46,12 +46,16 @@ Item {
4646 property alias resizeAreaMinHeight: windowResizeArea.minHeight
4747 x: requestedX
4848 y: requestedY
49− property real requestedX: units.gu(20)
50− property real requestedY: units.gu(20)
49+ property real requestedX: windowedX
50+ property real requestedY: windowedY
5151 width: requestedWidth
5252 height: requestedHeight
53− property real requestedWidth
54− property real requestedHeight
53+ property real requestedWidth: windowedWidth
54+ property real requestedHeight: windowedHeight
55+ property real windowedX: units.gu(20)
56+ property real windowedY: units.gu(20)
57+ property real windowedWidth
58+ property real windowedHeight
5559 property real minimumWidth: 0
5660 property real minimumHeight: 0
5761 property real maximumWidth: 0