@@ -34,6 +34,12 @@ Item {
3434 readonly property bool valid: rowRepeater.count > 0
3535 readonly property bool showRequested: d.longAltPressed || d.currentItem != null
3636
37+ // MoveHandler API for DecoratedWindow
38+ signal pressed(var mouse)
39+ signal pressedChangedEx(bool pressed, var pressedButtons, real mouseX, real mouseY)
40+ signal positionChanged(var mouse)
41+ signal released(var mouse)
42+
3743 implicitWidth: row.width
3844 height: parent.height
3945
@@ -45,12 +51,6 @@ Item {
4551 d.dismissAll();
4652 }
4753
48− onWindowMovingChanged: {
49− if (windowMoving) {
50− dismiss();
51− }
52− }
53−
5454 GlobalShortcut {
5555 shortcut: Qt.Key_Alt|Qt.AltModifier
5656 active: enableKeyFilter
@@ -228,18 +228,7 @@ Item {
228228 anchors.fill: parent
229229 hoverEnabled: d.currentItem
230230
231− Timer {
232− id: delayedPopupTimer
233− interval: 150
234− onTriggered: {
235− if (root.windowMoving) return;
236− var prevItem = d.currentItem;
237− mouseArea.updateCurrentItemFromPosition(Qt.point(mouseArea.mouseX, mouseArea.mouseY));
238− if (prevItem && d.currentItem == prevItem) {
239− prevItem.hide();
240− }
241− }
242− }
231+ property bool moved: false
243232
244233 onEntered: {
245234 if (d.currentItem) {
@@ -247,18 +236,29 @@ Item {
247236 }
248237 }
249238 onPositionChanged: {
239+ root.positionChanged(mouse);
240+ moved = root.windowMoving;
250241 if (d.currentItem) {
251242 updateCurrentItemFromPosition(Qt.point(mouse.x, mouse.y))
252243 }
253244 }
254245
255− onPressed: {
256− mouse.accepted = false;
257− if (containsPress && !root.windowMoving) {
258− delayedPopupTimer.start();
246+ onClicked: {
247+ if (!moved) {
248+ var prevItem = d.currentItem;
249+ mouseArea.updateCurrentItemFromPosition(Qt.point(mouseArea.mouseX, mouseArea.mouseY));
250+ if (prevItem && d.currentItem == prevItem) {
251+ prevItem.hide();
252+ }
259253 }
254+ moved = false;
260255 }
261256
257+ // for the MoveHandler
258+ onPressed: root.pressed(mouse)
259+ onPressedChanged: root.pressedChangedEx(pressed, pressedButtons, mouseX, mouseY)
260+ onReleased: root.released(mouse);
261+
262262 function updateCurrentItemFromPosition(point) {
263263 var pos = mapToItem(row, point.x, point.y);
264264