on xenial help sign in
Forbid closing apps during the edge gesture. Fixes: #1445572

Approved by: Michael Zanetti

commita8b6658a69ea9a7d57ceb98241e6423286f0d838 authorhandsome_feng <445865575@qq.com> dateThu 18 Jun 2015, 19:39 (11 years ago) parentafa51cbe6d6867
3 files changed+32
qml/Stages/PhoneStage.qml+7 qml/Stages/TabletStage.qml+6 tests/qmltests/Stages/tst_PhoneStage.qml+19
qml/Stages/PhoneStage.qml+7
@@ -548,6 +548,13 @@ Rectangle {
548548 }
549549 }
550550
551+ //eat touch events during the right edge gesture
552+ MouseArea {
553+ objectName: "eventEaterArea"
554+ anchors.fill: parent
555+ enabled: spreadDragArea.dragging
556+ }
557+
551558 DirectionalDragArea {
552559 id: spreadDragArea
553560 objectName: "spreadDragArea"
qml/Stages/TabletStage.qml+6
@@ -724,6 +724,12 @@ Rectangle {
724724 }
725725 }
726726
727+ //eat touch events during the right edge gesture
728+ MouseArea {
729+ anchors.fill: parent
730+ enabled: spreadDragArea.dragging
731+ }
732+
727733 DirectionalDragArea {
728734 id: spreadDragArea
729735 objectName: "spreadDragArea"
tests/qmltests/Stages/tst_PhoneStage.qml+19
@@ -346,6 +346,25 @@ Item {
346346 tryCompare(spreadView, "contentX", -spreadView.shift)
347347 }
348348
349+ function test_cantAccessPhoneStageWhileRightEdgeGesture() {
350+ var spreadView = findChild(phoneStage, "spreadView");
351+ var eventEaterArea = findChild(phoneStage, "eventEaterArea")
352+
353+ var startX = phoneStage.width - 2;
354+ var startY = phoneStage.height / 2;
355+ var endY = startY;
356+ var endX = phoneStage.width / 2;
357+
358+ touchFlick(phoneStage, startX, startY, endX, endY,
359+ true /* beginTouch */, false /* endTouch */, units.gu(10), 50);
360+
361+ compare(eventEaterArea.enabled, true);
362+
363+ touchRelease(phoneStage, endX, endY);
364+
365+ compare(eventEaterArea.enabled, false);
366+ }
367+
349368 function test_leftEdge_data() {
350369 return [
351370 { tag: "normal", inSpread: false, leftEdgeDragWidth: units.gu(5), shouldMoveApp: true },