From 8ccdd2e719d51b8745da7a5d550f077e84d38c75 Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Thu, 16 May 2019 23:58:27 +0300 Subject: [PATCH] improve Tasks adding launchers responsiveness --- containment/package/contents/ui/main.qml | 21 ++++++---- plasmoid/package/contents/ui/main.qml | 38 +++++++++++-------- .../contents/ui/taskslayout/MouseHandler.qml | 3 +- 3 files changed, 37 insertions(+), 25 deletions(-) diff --git a/containment/package/contents/ui/main.qml b/containment/package/contents/ui/main.qml index ede25078b..18e97bc76 100644 --- a/containment/package/contents/ui/main.qml +++ b/containment/package/contents/ui/main.qml @@ -683,6 +683,7 @@ DragDrop.DropArea { dragIsTask = isTask; dragIsSeparator = isSeparator; dragIsLatteTasks = isLatteTasks; + dragOnlyLaunchers = latteApplet ? latteApplet.launchersDrop(event) : false; if (dragIsTask || plasmoid.immutable || dockIsHidden || visibilityManager.inSlidingIn || visibilityManager.inSlidingOut) { event.ignore(); @@ -690,11 +691,12 @@ DragDrop.DropArea { } if (latteApplet) { - dragOnlyLaunchers = latteApplet.launchersDrop(event); - if (dragOnlyLaunchers) { root.addLaunchersMessage = true; - if (root.addLaunchersInTaskManager) { + if (root.addLaunchersInTaskManager || root.latteAppletContainer.containsPos(event)) { + confirmedDragEntered = true + dndSpacer.opacity = 0; + dndSpacer.parent = root; return; } } else { @@ -723,10 +725,13 @@ DragDrop.DropArea { return; } - if (latteApplet) { + if (latteApplet && (dragOnlyLaunchers || dragIsSeparator)) { if (dragOnlyLaunchers) { root.addLaunchersMessage = true; - if (root.addLaunchersInTaskManager) { + if (root.addLaunchersInTaskManager || root.latteAppletContainer.containsPos(event)) { + confirmedDragEntered = true + dndSpacer.opacity = 0; + dndSpacer.parent = root; return; } } else { @@ -746,10 +751,10 @@ DragDrop.DropArea { } onDragLeave: { - dragIsTask = false; + /* dragIsTask = false; dragIsSeparator = false; dragIsLatteTasks = false; - dragOnlyLaunchers = false; + dragOnlyLaunchers = false;*/ if (confirmedDragEntered) { slotAnimationsNeedLength(-1); @@ -766,7 +771,7 @@ DragDrop.DropArea { return; } - if (latteApplet && dragOnlyLaunchers && root.addLaunchersInTaskManager) { + if (latteApplet && dragOnlyLaunchers && (root.addLaunchersInTaskManager || root.latteAppletContainer.containsPos(event))) { latteApplet.launchersDropped(event.mimeData.urls); } else if (!latteApplet || (latteApplet && !dragIsLatteTasks)) { plasmoid.processMimeData(event.mimeData, event.x, event.y); diff --git a/plasmoid/package/contents/ui/main.qml b/plasmoid/package/contents/ui/main.qml index 49d9dcc05..17d4ee9fe 100644 --- a/plasmoid/package/contents/ui/main.qml +++ b/plasmoid/package/contents/ui/main.qml @@ -150,6 +150,10 @@ Item { return ((iconSize + heightMargins) * zoomFactor) - maxSeparatorLength; } + readonly property bool dragAreaEnabled: latteView ? (root.dragSource !== null + || latteView.dragIsSeparator + || latteView.dragIsTask) + : true //! it is used to play the animation correct when the user removes a launcher property string launcherForRemoval: "" @@ -249,7 +253,7 @@ Item { readonly property rect screenGeometry: latteView ? latteView.screenGeometry : plasmoid.screenGeometry readonly property bool viewLayoutIsCurrent: latteView && viewLayout && latteView.layoutsManager - && viewLayout.name === latteView.layoutsManager.currentLayoutName + && viewLayout.name === latteView.layoutsManager.currentLayoutName readonly property string viewLayoutName: viewLayout ? viewLayout.name : "" readonly property QtObject viewLayout : latteView && latteView.viewLayout ? latteView.viewLayout : null @@ -388,15 +392,15 @@ Item { if (inConfigureAppletsMode) { return Latte.Types.Center; } else if (latteView.panelUserSetAlignment === Latte.Types.Justify) { - if (latteView.latteAppletPos>=0 && latteView.latteAppletPos<100) { - return plasmoid.formFactor === PlasmaCore.Types.Horizontal ? Latte.Types.Left : Latte.Types.Top; - } else if (latteView.latteAppletPos>=100 && latteView.latteAppletPos<200) { - return Latte.Types.Center; - } else if (latteView.latteAppletPos>=200) { - return plasmoid.formFactor === PlasmaCore.Types.Horizontal ? Latte.Types.Right : Latte.Types.Bottom; - } - + if (latteView.latteAppletPos>=0 && latteView.latteAppletPos<100) { + return plasmoid.formFactor === PlasmaCore.Types.Horizontal ? Latte.Types.Left : Latte.Types.Top; + } else if (latteView.latteAppletPos>=100 && latteView.latteAppletPos<200) { return Latte.Types.Center; + } else if (latteView.latteAppletPos>=200) { + return plasmoid.formFactor === PlasmaCore.Types.Horizontal ? Latte.Types.Right : Latte.Types.Bottom; + } + + return Latte.Types.Center; } return latteView.panelUserSetAlignment; @@ -788,9 +792,9 @@ Item { if (inDraggingPhase) { if (latteView && latteView.launchersGroup >= Latte.Types.LayoutLaunchers) { latteView.layoutsManager.launchersSignals.validateLaunchersOrder(root.viewLayoutName, - plasmoid.id, - latteView.launchersGroup, - currentLauncherList()); + plasmoid.id, + latteView.launchersGroup, + currentLauncherList()); } } } else { @@ -1190,6 +1194,8 @@ Item { target: icList + visible: root.dragAreaEnabled + property int maxSize: (((root.hoveredIndex>=0 || dockHoveredIndex>=0 ) || windowPreviewIsShown) && !root.dragSource) ? root.zoomFactor * (root.iconSize + root.thickMargins) : root.iconSize + root.thickMargins @@ -1225,7 +1231,7 @@ Item { //! inform synced docks for new dropped launchers if (latteView && latteView.launchersGroup >= Latte.Types.LayoutLaunchers && onlyLaunchersInList(urls)) { latteView.layoutsManager.launchersSignals.urlsDropped(root.viewLayoutName, - latteView.launchersGroup, urls); + latteView.launchersGroup, urls); return; } @@ -1235,7 +1241,7 @@ Item { } } - /* Rectangle { + /* Rectangle { anchors.fill: scrollableList color: "transparent" border.width: 1 @@ -1669,7 +1675,7 @@ Item { if (latteView && latteView.launchersGroup >= Latte.Types.LayoutLaunchers) { latteView.layoutsManager.launchersSignals.addLauncher(root.viewLayoutName, - latteView.launchersGroup, separatorName); + latteView.launchersGroup, separatorName); } else { tasksModel.requestAddLauncher(separatorName); } @@ -1894,7 +1900,7 @@ Item { if (separatorName !== "") { if (latteView && latteView.launchersGroup >= Latte.Types.LayoutLaunchers) { latteView.layoutsManager.launchersSignals.removeLauncher(root.viewLayoutName, - latteView.launchersGroup, separatorName); + latteView.launchersGroup, separatorName); } else { root.launcherForRemoval = separatorName; tasksModel.requestRemoveLauncher(separatorName); diff --git a/plasmoid/package/contents/ui/taskslayout/MouseHandler.qml b/plasmoid/package/contents/ui/taskslayout/MouseHandler.qml index f0b038fcb..073d881d7 100644 --- a/plasmoid/package/contents/ui/taskslayout/MouseHandler.qml +++ b/plasmoid/package/contents/ui/taskslayout/MouseHandler.qml @@ -103,7 +103,8 @@ Item { root.dropNewLauncher = true; return; } else { - event.ignore(); + return; + //event.ignore(); } if (createLaunchers) {