on xenial help sign in
Make double click on the window decoration still maximize
e6dcb34Albert Astals Cid
qml/ApplicationMenus/MenuBar.qml+2
@@ -188,6 +188,8 @@ Item {
188 anchors.fill: parent
188 anchors.fill: parent
189 hoverEnabled: d.currentItem
189 hoverEnabled: d.currentItem
190
190
191+ propagateComposedEvents: true
192+
191 onEntered: {
193 onEntered: {
192 if (d.currentItem) {
194 if (d.currentItem) {
193 updateCurrentItemFromPosition(Qt.point(mouseX, mouseY))
195 updateCurrentItemFromPosition(Qt.point(mouseX, mouseY))
tests/qmltests/Stage/tst_DesktopStage.qml+33−4
@@ -695,10 +695,17 @@ Item {
695 var sizeBefore = Qt.size(dialerDelegate.width, dialerDelegate.height);
695 var sizeBefore = Qt.size(dialerDelegate.width, dialerDelegate.height);
696 var deco = findChild(dialerDelegate, "appWindowDecoration");
696 var deco = findChild(dialerDelegate, "appWindowDecoration");
697 verify(deco);
697 verify(deco);
698− tryCompare(deco, "maximizeButtonShown", false);
698+ mouseMove(deco, deco.width - units.gu(1), deco.height/2);
699+ var menuBarLoader = findChild(deco, "menuBarLoader");
700+ tryCompare(menuBarLoader.item, "visible", true);
699− mouseDoubleClick(deco);
701+ mouseDoubleClick(deco, deco.width - units.gu(1), deco.height/2);
700− var sizeAfter = Qt.size(dialerDelegate.width, dialerDelegate.height);
702+ expectFail("", "Double click should not maximize ina a size restricted window");
701− tryCompareFunction(function(){ return sizeBefore; }, sizeAfter);
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+ );
702
709
703 // remove restrictions, the maximize button should again be visible
710 // remove restrictions, the maximize button should again be visible
704 dialerDelegate.surface.setMaximumWidth(0);
711 dialerDelegate.surface.setMaximumWidth(0);
@@ -706,6 +713,28 @@ Item {
706 tryCompare(dialerMaximizeButton, "visible", true);
713 tryCompare(dialerMaximizeButton, "visible", true);
707 }
714 }
708
715
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+
709 function test_canMoveWindowWithLeftMouseButtonOnly_data() {
738 function test_canMoveWindowWithLeftMouseButtonOnly_data() {
710 return [
739 return [
711 {tag: "left mouse button", button: Qt.LeftButton },
740 {tag: "left mouse button", button: Qt.LeftButton },