From 86e645c720b23d8c5748846f9a6567ec1efe6e01 Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Fri, 17 May 2019 21:49:31 +0300 Subject: [PATCH] position properly dropped applets and urls in view --- app/view/view.cpp | 2 +- .../package/contents/ui/DragDropArea.qml | 49 ++++++++++++------- 2 files changed, 31 insertions(+), 20 deletions(-) diff --git a/app/view/view.cpp b/app/view/view.cpp index 2e32d755c..d3cf28b60 100644 --- a/app/view/view.cpp +++ b/app/view/view.cpp @@ -1086,6 +1086,7 @@ bool View::event(QEvent *e) case QEvent::Leave: m_containsMouse = false; + setContainsDrag(false); engine()->trimComponentCache(); break; @@ -1094,7 +1095,6 @@ bool View::event(QEvent *e) break; case QEvent::DragLeave: - case QEvent::Drop: setContainsDrag(false); break; diff --git a/containment/package/contents/ui/DragDropArea.qml b/containment/package/contents/ui/DragDropArea.qml index d43e466cd..6adff8aed 100644 --- a/containment/package/contents/ui/DragDropArea.qml +++ b/containment/package/contents/ui/DragDropArea.qml @@ -59,18 +59,29 @@ DragDrop.DropArea { } function clearInfo() { - dragArea.dragInfo.entered = false; - dragArea.dragInfo.isTask = false; - dragArea.dragInfo.isPlasmoid = false; - dragArea.dragInfo.isSeparator = false; - dragArea.dragInfo.isLatteTasks = false; - dragArea.dragInfo.onlyLaunchers = false; - - dndSpacer.parent = root; - dndSpacer.opacity = 0; + clearInfoTimer.start(); + } + + //! Give the time when an applet is dropped to be positioned properly + Timer { + id: clearInfoTimer + interval: 500 + + onTriggered: { + dragArea.dragInfo.entered = false; + dragArea.dragInfo.isTask = false; + dragArea.dragInfo.isPlasmoid = false; + dragArea.dragInfo.isSeparator = false; + dragArea.dragInfo.isLatteTasks = false; + dragArea.dragInfo.onlyLaunchers = false; + + dndSpacer.parent = root; + dndSpacer.opacity = 0; + } } onDragEnter: { + clearInfoTimer.stop(); var isTask = event !== undefined && event.mimeData !== undefined && event.mimeData.formats !== undefined @@ -122,11 +133,6 @@ DragDrop.DropArea { } } - // if (!dragInfo.entered) { - // dragInfo.entered = true; - // slotAnimationsNeedLength(1); -// } - if (!dragResistaner.running && (!latteApplet || (latteApplet && !dragInfo.isLatteTasks))) { if (!isForeground) { dragResistaner.start(); @@ -138,6 +144,7 @@ DragDrop.DropArea { } onDragMove: { + clearInfoTimer.stop(); if (dragInfo.isTask) { return; } @@ -186,12 +193,11 @@ DragDrop.DropArea { } onDrop: { - if (dragInfo.entered) { - slotAnimationsNeedLength(-1); - dragInfo.entered = false; - } - if (dragInfo.isTask || dockIsHidden || visibilityManager.inSlidingIn || visibilityManager.inSlidingOut) { + if (dragInfo.entered) { + slotAnimationsNeedLength(-1); + dragInfo.entered = false; + } return; } @@ -204,5 +210,10 @@ DragDrop.DropArea { root.addLaunchersMessage = false; dndSpacer.opacity = 0; + + if (dragInfo.entered) { + slotAnimationsNeedLength(-1); + dragInfo.entered = false; + } } }