on xenial help sign in
Forbid closing apps during the edge gesture. Fixes: #1445572
a8b6658handsome_feng
qml/Stages/PhoneStage.qml+7
@@ -548,6 +548,13 @@ Rectangle {
548 }
548 }
549 }
549 }
550
550
551+ //eat touch events during the right edge gesture
552+ MouseArea {
553+ objectName: "eventEaterArea"
554+ anchors.fill: parent
555+ enabled: spreadDragArea.dragging
556+ }
557+
551 DirectionalDragArea {
558 DirectionalDragArea {
552 id: spreadDragArea
559 id: spreadDragArea
553 objectName: "spreadDragArea"
560 objectName: "spreadDragArea"
qml/Stages/TabletStage.qml+6
@@ -724,6 +724,12 @@ Rectangle {
724 }
724 }
725 }
725 }
726
726
727+ //eat touch events during the right edge gesture
728+ MouseArea {
729+ anchors.fill: parent
730+ enabled: spreadDragArea.dragging
731+ }
732+
727 DirectionalDragArea {
733 DirectionalDragArea {
728 id: spreadDragArea
734 id: spreadDragArea
729 objectName: "spreadDragArea"
735 objectName: "spreadDragArea"
tests/qmltests/Stages/tst_PhoneStage.qml+19
@@ -346,6 +346,25 @@ Item {
346 tryCompare(spreadView, "contentX", -spreadView.shift)
346 tryCompare(spreadView, "contentX", -spreadView.shift)
347 }
347 }
348
348
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+
349 function test_leftEdge_data() {
368 function test_leftEdge_data() {
350 return [
369 return [
351 { tag: "normal", inSpread: false, leftEdgeDragWidth: units.gu(5), shouldMoveApp: true },
370 { tag: "normal", inSpread: false, leftEdgeDragWidth: units.gu(5), shouldMoveApp: true },