From: Kevin Ottens Date: Mon, 14 Sep 2020 16:03:57 +0000 (+0200) Subject: Make sure menu are closed when button is clicked again X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~22^2~169^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=6ee37b59750e70470080430cea5edebe5b153367;p=nextcloud-desktop.git Make sure menu are closed when button is clicked again This way we also made sure all the Menu are currently on the same close policy. Signed-off-by: Kevin Ottens --- diff --git a/src/gui/tray/UserLine.qml b/src/gui/tray/UserLine.qml index 125819b3e..e0171beea 100644 --- a/src/gui/tray/UserLine.qml +++ b/src/gui/tray/UserLine.qml @@ -123,9 +123,12 @@ MenuItem { id: userMoreButtonMouseArea anchors.fill: parent hoverEnabled: true - onClicked: - { - userMoreButtonMenu.popup() + onClicked: { + if (userMoreButtonMenu.visible) { + userMoreButtonMenu.close() + } else { + userMoreButtonMenu.popup() + } } } background: @@ -139,6 +142,7 @@ MenuItem { Menu { id: userMoreButtonMenu width: 120 + closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape background: Rectangle { border.color: Style.menuBorder diff --git a/src/gui/tray/Window.qml b/src/gui/tray/Window.qml index b0a324645..4295381b0 100644 --- a/src/gui/tray/Window.qml +++ b/src/gui/tray/Window.qml @@ -147,7 +147,11 @@ Window { // exactly below the dropdown button, not the mouse onClicked: { syncPauseButton.text = Systray.syncIsPaused() ? qsTr("Resume sync for all") : qsTr("Pause sync for all") - accountMenu.open() + if (accountMenu.visible) { + accountMenu.close() + } else { + accountMenu.open() + } } Menu { @@ -160,7 +164,7 @@ Window { width: (Style.currentAccountButtonWidth - 2) height: Math.min(implicitHeight, maxMenuHeight) - closePolicy: "CloseOnPressOutside" + closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape background: Rectangle { border.color: Style.menuBorder @@ -387,10 +391,12 @@ Window { id: trayWindowAppsButton icon.source: "qrc:///client/theme/white/more-apps.svg" onClicked: { - if(appsMenu.count > 0) { - appsMenu.open() - } else { + if(appsMenu.count <= 0) { UserModel.openCurrentAccountServer() + } else if (appsMenu.visible) { + appsMenu.close() + } else { + appsMenu.open() } } @@ -400,7 +406,7 @@ Window { readonly property Item listContentItem: contentItem.contentItem width: Math.min(listContentItem.childrenRect.width + 4, Style.trayWindowWidth / 2) height: Math.min(implicitHeight, maxMenuHeight) - closePolicy: "CloseOnPressOutside" + closePolicy: Menu.CloseOnPressOutsideParent | Menu.CloseOnEscape background: Rectangle { border.color: Style.menuBorder