Make sure menu are closed when button is clicked again
authorKevin Ottens <kevin.ottens@nextcloud.com>
Mon, 14 Sep 2020 16:03:57 +0000 (18:03 +0200)
committerKevin Ottens (Rebase PR Action) <er-vin@users.noreply.github.com>
Tue, 15 Sep 2020 08:46:10 +0000 (08:46 +0000)
This way we also made sure all the Menu are currently on the same close
policy.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
src/gui/tray/UserLine.qml
src/gui/tray/Window.qml

index 125819b3ea03d66f5ff43c35b9dd323f45902b3f..e0171beea8cf1f834dd4a1e3cf2a2186b30b727c 100644 (file)
@@ -123,9 +123,12 @@ MenuItem {
                     id: userMoreButtonMouseArea\r
                     anchors.fill: parent\r
                     hoverEnabled: true\r
-                    onClicked:\r
-                    {\r
-                        userMoreButtonMenu.popup()\r
+                    onClicked: {\r
+                        if (userMoreButtonMenu.visible) {\r
+                            userMoreButtonMenu.close()\r
+                        } else {\r
+                            userMoreButtonMenu.popup()\r
+                        }\r
                     }\r
                 }\r
                 background:\r
@@ -139,6 +142,7 @@ MenuItem {
                 Menu {\r
                     id: userMoreButtonMenu\r
                     width: 120\r
+                    closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape\r
 \r
                     background: Rectangle {\r
                         border.color: Style.menuBorder\r
index b0a32464556ec92490ac9c2951e05af2a688afaf..4295381b014df67154021a947637fd2545de42d7 100644 (file)
@@ -147,7 +147,11 @@ Window {
                         // exactly below the dropdown button, not the mouse\r
                         onClicked: {\r
                             syncPauseButton.text = Systray.syncIsPaused() ? qsTr("Resume sync for all") : qsTr("Pause sync for all")\r
-                            accountMenu.open()\r
+                            if (accountMenu.visible) {\r
+                                accountMenu.close()\r
+                            } else {\r
+                                accountMenu.open()\r
+                            }\r
                         }\r
 \r
                         Menu {\r
@@ -160,7 +164,7 @@ Window {
 \r
                             width: (Style.currentAccountButtonWidth - 2)\r
                             height: Math.min(implicitHeight, maxMenuHeight)\r
-                            closePolicy: "CloseOnPressOutside"\r
+                            closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape\r
 \r
                             background: Rectangle {\r
                                 border.color: Style.menuBorder\r
@@ -387,10 +391,12 @@ Window {
                     id: trayWindowAppsButton\r
                     icon.source: "qrc:///client/theme/white/more-apps.svg"\r
                     onClicked: {\r
-                        if(appsMenu.count > 0) {\r
-                            appsMenu.open()\r
-                        } else {\r
+                        if(appsMenu.count <= 0) {\r
                             UserModel.openCurrentAccountServer()\r
+                        } else if (appsMenu.visible) {\r
+                            appsMenu.close()\r
+                        } else {\r
+                            appsMenu.open()\r
                         }\r
                     }\r
 \r
@@ -400,7 +406,7 @@ Window {
                         readonly property Item listContentItem: contentItem.contentItem\r
                         width: Math.min(listContentItem.childrenRect.width + 4, Style.trayWindowWidth / 2)\r
                         height: Math.min(implicitHeight, maxMenuHeight)\r
-                        closePolicy: "CloseOnPressOutside"\r
+                        closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape\r
 \r
                         background: Rectangle {\r
                             border.color: Style.menuBorder\r