@@ -34,6 +34,12 @@ Item {
34 readonly property bool valid: rowRepeater.count > 0
34 readonly property bool valid: rowRepeater.count > 0
35 readonly property bool showRequested: d.longAltPressed || d.currentItem != null
35 readonly property bool showRequested: d.longAltPressed || d.currentItem != null
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)
37 implicitWidth: row.width
43 implicitWidth: row.width
38 height: parent.height
44 height: parent.height
@@ -45,12 +51,6 @@ Item {
45 d.dismissAll();
51 d.dismissAll();
48− onWindowMovingChanged: {
54 GlobalShortcut {
54 GlobalShortcut {
55 shortcut: Qt.Key_Alt|Qt.AltModifier
55 shortcut: Qt.Key_Alt|Qt.AltModifier
56 active: enableKeyFilter
56 active: enableKeyFilter
@@ -228,18 +228,7 @@ Item {
228 anchors.fill: parent
228 anchors.fill: parent
229 hoverEnabled: d.currentItem
229 hoverEnabled: d.currentItem
231− Timer {
231+ property bool moved: false
232− id: delayedPopupTimer
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) {
244 onEntered: {
233 onEntered: {
245 if (d.currentItem) {
234 if (d.currentItem) {
@@ -247,18 +236,29 @@ Item {
249 onPositionChanged: {
238 onPositionChanged: {
239+ root.positionChanged(mouse);
240+ moved = root.windowMoving;
250 if (d.currentItem) {
241 if (d.currentItem) {
251 updateCurrentItemFromPosition(Qt.point(mouse.x, mouse.y))
242 updateCurrentItemFromPosition(Qt.point(mouse.x, mouse.y))
255− onPressed: {
246+ onClicked: {
256− mouse.accepted = false;
247+ if (!moved) {
257− if (containsPress && !root.windowMoving) {
248+ var prevItem = d.currentItem;
258− delayedPopupTimer.start();
249+ mouseArea.updateCurrentItemFromPosition(Qt.point(mouseArea.mouseX, mouseArea.mouseY));
250+ if (prevItem && d.currentItem == prevItem) {
257+ // for the MoveHandler
258+ onPressed: root.pressed(mouse)
259+ onPressedChanged: root.pressedChangedEx(pressed, pressedButtons, mouseX, mouseY)
260+ onReleased: root.released(mouse);
262 function updateCurrentItemFromPosition(point) {
262 function updateCurrentItemFromPosition(point) {
263 var pos = mapToItem(row, point.x, point.y);
263 var pos = mapToItem(row, point.x, point.y);