diff --git a/qml/FolderGridViewPopup.qml b/qml/FolderGridViewPopup.qml index bf1685c7..c8be8bcb 100644 --- a/qml/FolderGridViewPopup.qml +++ b/qml/FolderGridViewPopup.qml @@ -269,9 +269,7 @@ Popup { anchors.fill: parent dndEnabled: true displayFont: isWindowedMode ? DTK.fontManager.t9 : DTK.fontManager.t6 - Drag.mimeData: { - "text/x-dde-launcher-dnd-desktopId": model.desktopId - } + Drag.mimeData: Helper.generateDragMimeData(model.desktopId) visible: dndItem.currentlyDraggedId !== model.desktopId iconSource: iconName diff --git a/qml/FullscreenFrame.qml b/qml/FullscreenFrame.qml index 84f190ab..4a887c6e 100644 --- a/qml/FullscreenFrame.qml +++ b/qml/FullscreenFrame.qml @@ -465,9 +465,7 @@ InputEventItem { margins: 5 } dndEnabled: !folderGridViewPopup.opened - Drag.mimeData: { - "text/x-dde-launcher-dnd-desktopId": model.desktopId - } + Drag.mimeData: Helper.generateDragMimeData(model.desktopId) visible: dndItem.currentlyDraggedId !== model.desktopId iconSource: (iconName && iconName !== "") ? iconName : "application-x-desktop" icons: folderIcons diff --git a/qml/Helper.qml b/qml/Helper.qml index c98ff69f..53503479 100644 --- a/qml/Helper.qml +++ b/qml/Helper.qml @@ -48,4 +48,14 @@ QtObject { crystal: itemBackgroundColor.hoveredDarkColor } } + + function generateDragMimeData(desktopId) { + // In some cases an app is not allowed to be pinned onto dock via drag-n-drop; + // We only insert the MIME data for dde-dock in those allowed cases. + var mime = { "text/x-dde-launcher-dnd-desktopId": desktopId } + if (!DesktopIntegration.appIsDummyPackage(desktopId)) { + mime["text/x-dde-dock-dnd-appid"] = desktopId + } + return mime + } } diff --git a/qml/windowed/FreeSortListView.qml b/qml/windowed/FreeSortListView.qml index 0d60a5d9..b1af7537 100644 --- a/qml/windowed/FreeSortListView.qml +++ b/qml/windowed/FreeSortListView.qml @@ -164,9 +164,7 @@ Item { Drag.hotSpot.y: height / 2 Drag.dragType: Drag.Automatic Drag.active: mouseArea.drag.active - Drag.mimeData: { - "text/x-dde-launcher-dnd-desktopId": model.desktopId - } + Drag.mimeData: Helper.generateDragMimeData(model.desktopId) background: ItemBackground { id: bg