From 39a4ae5780458407f7d403bdcf2f0c6b8cfa66cb Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Thu, 22 Aug 2019 14:01:04 +0200 Subject: [PATCH] position mapping fixes --- .../package/contents/ui/launcher/FavoriteStrip.qml | 6 ++++++ .../contents/ui/launcher/LauncherDragManager.qml | 10 +++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/containments/homescreen2/package/contents/ui/launcher/FavoriteStrip.qml b/containments/homescreen2/package/contents/ui/launcher/FavoriteStrip.qml index dcab3d9c..be98625b 100644 --- a/containments/homescreen2/package/contents/ui/launcher/FavoriteStrip.qml +++ b/containments/homescreen2/package/contents/ui/launcher/FavoriteStrip.qml @@ -39,4 +39,10 @@ LauncherContainer { implicitWidth: launcherGrid.cellWidth * Math.max(1, plasmoid.nativeInterface.applicationListModel.favoriteCount) + leftPadding + rightPadding + Behavior on width { + NumberAnimation { + duration: units.longDuration + easing.type: Easing.InOutQuad + } + } } diff --git a/containments/homescreen2/package/contents/ui/launcher/LauncherDragManager.qml b/containments/homescreen2/package/contents/ui/launcher/LauncherDragManager.qml index 6d5425af..52b3ad4a 100644 --- a/containments/homescreen2/package/contents/ui/launcher/LauncherDragManager.qml +++ b/containments/homescreen2/package/contents/ui/launcher/LauncherDragManager.qml @@ -59,11 +59,13 @@ QtObject { } function changeContainer(item, container) { - var pos = container.contentItem.mapFromItem(item, 0, 0); + var pos; if (container == appletsLayout) { + pos = container.mapFromItem(item, 0, 0); item.parent = container; } else { + pos = container.contentItem.mapFromItem(item, 0, 0); item.parent = container.contentItem; } @@ -90,7 +92,9 @@ QtObject { // Search Left for (var i = 0; i < item.width * 2; i += item.width/2) { - var candidate = container.flow.childAt(item.x + dragCenterX + i, item.y + dragCenterY); + var candidate = container.flow.childAt( + Math.min(container.flow.width, Math.max(0, item.x + dragCenterX + i)), + Math.min(container.flow.height-1, Math.max(0, item.y + dragCenterY))); if (candidate && i < distance) { child = candidate; break; @@ -99,7 +103,7 @@ QtObject { // Search Right for (var i = 0; i < item.width * 2; i += item.width/2) { - var candidate = container.flow.childAt(item.x + dragCenterX - i, item.y + dragCenterY); + var candidate = container.flow.childAt(Math.min(container.flow.width, Math.max(0, item.x + dragCenterX - i)), Math.min(container.flow.height-1, Math.max(0, item.y + dragCenterY))); if (candidate && i < distance) { child = candidate; break;