diff --git a/panels/dock/package/main.qml b/panels/dock/package/main.qml index 5d12374f8..35d9cc836 100644 --- a/panels/dock/package/main.qml +++ b/panels/dock/package/main.qml @@ -422,6 +422,7 @@ Window { } } + property bool isLongPressing: false TapHandler { acceptedButtons: Qt.LeftButton | Qt.RightButton gesturePolicy: TapHandler.WithinBounds @@ -438,6 +439,22 @@ Window { viewDeactivated() } } + onLongPressed: { + console.debug("[Mouse Long Press] longPressed") + dockContainer.isLongPressing = true + } + onPressedChanged: { + console.debug("[Mouse Long Press] pressedChanged, pressed:", pressed, "isLongPressing:", dockContainer.isLongPressing) + if (!pressed && dockContainer.isLongPressing) { + dockContainer.isLongPressing = false + let lastActive = MenuHelper.activeMenu + MenuHelper.closeCurrent() + dockMenuLoader.active = true + if (lastActive !== dockMenuLoader.item) { + requestShowDockMenu() + } + } + } } //Touch screen click @@ -453,11 +470,19 @@ Window { viewDeactivated() } onLongPressed: { - let lastActive = MenuHelper.activeMenu - MenuHelper.closeCurrent() - dockMenuLoader.active = true - if (lastActive !== dockMenuLoader.item) { - requestShowDockMenu() + console.debug("[Touch Long Press] longPressed") + dockContainer.isLongPressing = true + } + onPressedChanged: { + console.debug("[Touch Long Press] pressedChanged, pressed:", pressed, "isLongPressing:", dockContainer.isLongPressing) + if (!pressed && dockContainer.isLongPressing) { + dockContainer.isLongPressing = false + let lastActive = MenuHelper.activeMenu + MenuHelper.closeCurrent() + dockMenuLoader.active = true + if (lastActive !== dockMenuLoader.item) { + requestShowDockMenu() + } } } }