ibetter behavior for dragging

This commit is contained in:
Marco Martin 2019-09-03 12:11:39 +02:00
parent 36aa3e5f0b
commit 9999e4ffbf
2 changed files with 12 additions and 19 deletions

View file

@ -85,5 +85,11 @@ Item {
} }
} }
} }
Behavior on implicitWidth {
NumberAnimation {
duration: units.longDuration
easing.type: Easing.InOutQuad
}
}
} }
} }

View file

@ -33,8 +33,8 @@ Item {
property bool active property bool active
readonly property Item spacer: Item { readonly property Item spacer: Item {
width: units.gridUnit * 4 width: launcherGrid.cellWidth
height: width height: launcherGrid.cellHeight
} }
function startDrag(item) { function startDrag(item) {
@ -227,25 +227,12 @@ Item {
plasmoid.nativeInterface.applicationListModel.setLocation(item.modelData.index, ApplicationListModel.Grid); plasmoid.nativeInterface.applicationListModel.setLocation(item.modelData.index, ApplicationListModel.Grid);
} }
spacer.visible = false;
spacer.parent = container;
var child = nearestChild(item, dragCenterX, dragCenterY, container); var child = nearestChild(item, dragCenterX, dragCenterY, container);
if (!child) { putInContainerLayout(item, container);
putInContainerLayout(item, container); plasmoid.nativeInterface.stackBefore(item, spacer);
return; spacer.visible = false;
} spacer.parent = container;
var pos = container.flow.mapFromItem(item, dragCenterX, dragCenterY);
if (pos.x + dragCenterX < child.x + child.width / 2) {
putInContainerLayout(item, container);
plasmoid.nativeInterface.stackBefore(item, child);
} else {
putInContainerLayout(item, container);
plasmoid.nativeInterface.stackAfter(item, child);
}
} }
} }
} }