on xenial help sign in
prevent hiding the launcher when the mouse hover event is eaten by the EdgePushArea (LP: #1657045)

Approved by: Albert Astals Cid, Unity8 CI Bot

commit47b1884d6e3f208cfe071cecf7414cb3135ff976 authorMichael Zanetti <michael.zanetti@canonical.com> dateThu 16 Feb 2017, 13:45 (10 years ago) parent538ae7e4635884
3 files changed+15−1
qml/Components/EdgeBarrier.qml+1 qml/Launcher/Launcher.qml+1−1 tests/qmltests/Launcher/tst_Launcher.qml+13
qml/Components/EdgeBarrier.qml+1
@@ -30,6 +30,7 @@ Item {
3030 property int edge: Qt.LeftEdge
3131
3232 readonly property alias progress: controller.progress
33+ readonly property alias containsMouse: controller.containsMouse
3334
3435 property Item target: parent
3536 function push(amount) { controller.push(amount); }
qml/Launcher/Launcher.qml+1−1
@@ -414,7 +414,7 @@ FocusScope {
414414 target: panel.dismissTimer
415415 onTriggered: {
416416 if (root.autohideEnabled && !root.lockedVisible) {
417− if (!panel.preventHiding) {
417+ if (!edgeBarrier.containsMouse && !panel.preventHiding) {
418418 root.state = ""
419419 } else {
420420 panel.dismissTimer.restart()
tests/qmltests/Launcher/tst_Launcher.qml+13
@@ -1480,6 +1480,19 @@ Rectangle {
14801480 launcher.available = true;
14811481 }
14821482
1483+ function test_hoverOnEdgeBarrerPreventsHiding() {
1484+ revealByEdgePush();
1485+
1486+ // Make sure the mouse is on the very left edge (on top of the barrier)
1487+ mouseMove(root, 1, root.height / 2);
1488+
1489+ // trigger the hide timer
1490+ compare(fakeDismissTimer.running, true);
1491+ fakeDismissTimer.triggered();
1492+
1493+ compare(launcher.state, "visibleTemporary");
1494+ }
1495+
14831496 function test_hintOnSizeChange() {
14841497 var oldSize = launcher.panelWidth;
14851498 launcher.maxPanelX = -launcher.panelWidth;