on xenial help sign in
Make double click on the window decoration still maximize

+ fix test and add a new one

commite6dcb349237360900ee469377dbcf37c38300d83 authorAlbert Astals Cid <albert.astals@canonical.com> dateThu 19 Jan 2017, 17:05 (10 years ago) parentcc0e636
2 files changed+35−4
qml/ApplicationMenus/MenuBar.qml+2 tests/qmltests/Stage/tst_DesktopStage.qml+33−4
qml/ApplicationMenus/MenuBar.qml+2
@@ -188,6 +188,8 @@ Item {
188188 anchors.fill: parent
189189 hoverEnabled: d.currentItem
190190
191+ propagateComposedEvents: true
192+
191193 onEntered: {
192194 if (d.currentItem) {
193195 updateCurrentItemFromPosition(Qt.point(mouseX, mouseY))
tests/qmltests/Stage/tst_DesktopStage.qml+33−4
@@ -695,10 +695,17 @@ Item {
695695 var sizeBefore = Qt.size(dialerDelegate.width, dialerDelegate.height);
696696 var deco = findChild(dialerDelegate, "appWindowDecoration");
697697 verify(deco);
698− tryCompare(deco, "maximizeButtonShown", false);
699− mouseDoubleClick(deco);
700− var sizeAfter = Qt.size(dialerDelegate.width, dialerDelegate.height);
701− tryCompareFunction(function(){ return sizeBefore; }, sizeAfter);
698+ mouseMove(deco, deco.width - units.gu(1), deco.height/2);
699+ var menuBarLoader = findChild(deco, "menuBarLoader");
700+ tryCompare(menuBarLoader.item, "visible", true);
701+ mouseDoubleClick(deco, deco.width - units.gu(1), deco.height/2);
702+ expectFail("", "Double click should not maximize ina a size restricted window");
703+ tryCompareFunction(function() {
704+ var sizeAfter = Qt.size(dialerDelegate.width, dialerDelegate.height);
705+ return sizeAfter.width > sizeBefore.width && sizeAfter.height > sizeBefore.height;
706+ },
707+ true
708+ );
702709
703710 // remove restrictions, the maximize button should again be visible
704711 dialerDelegate.surface.setMaximumWidth(0);
@@ -706,6 +713,28 @@ Item {
706713 tryCompare(dialerMaximizeButton, "visible", true);
707714 }
708715
716+ function test_doubleClickMaximizes() {
717+ var dialerDelegate = startApplication("dialer-app");
718+
719+ var dialerMaximizeButton = findChild(dialerDelegate, "maximizeWindowButton");
720+ tryCompare(dialerMaximizeButton, "visible", true);
721+
722+ // try double clicking the decoration, shoul maximize it
723+ var sizeBefore = Qt.size(dialerDelegate.width, dialerDelegate.height);
724+ var deco = findChild(dialerDelegate, "appWindowDecoration");
725+ verify(deco);
726+ mouseMove(deco, deco.width - units.gu(1), deco.height/2);
727+ var menuBarLoader = findChild(deco, "menuBarLoader");
728+ tryCompare(menuBarLoader.item, "visible", true);
729+ mouseDoubleClick(deco, deco.width - units.gu(1), deco.height/2);
730+ tryCompareFunction(function() {
731+ var sizeAfter = Qt.size(dialerDelegate.width, dialerDelegate.height);
732+ return sizeAfter.width > sizeBefore.width && sizeAfter.height > sizeBefore.height;
733+ },
734+ true
735+ );
736+ }
737+
709738 function test_canMoveWindowWithLeftMouseButtonOnly_data() {
710739 return [
711740 {tag: "left mouse button", button: Qt.LeftButton },