Skip to content

Commit 85d11dc

Browse files
committed
fix: Disable dropping of already displayed plugin.
as title Log: as title Bug: https://pms.uniontech.com/bug-view-266651.html
1 parent 242a1dc commit 85d11dc

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

panels/dock/tray/package/TrayContainer.qml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,13 @@ Item {
142142
anchors.fill: parent
143143
keys: ["text/x-dde-shell-tray-dnd-surfaceId"]
144144
onEntered: function (dragEvent) {
145-
console.log(dragEvent.getDataAsString("text/x-dde-shell-tray-dnd-surfaceId"))
145+
let surfaceId = dragEvent.getDataAsString("text/x-dde-shell-tray-dnd-surfaceId")
146+
console.log(surfaceId)
147+
if (DDT.TraySortOrderModel.isDisplayedSurface(surfaceId)) {
148+
dragEvent.accepted = false
149+
} else {
150+
dragEvent.accepted = true
151+
}
146152
}
147153

148154
onPositionChanged: function (dragEvent) {

panels/dock/tray/traysortordermodel.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,11 @@ void TraySortOrderModel::setSurfaceVisible(const QString &surfaceId, bool visibl
206206
updateVisualIndexes();
207207
}
208208

209+
bool TraySortOrderModel::isDisplayedSurface(const QString &surfaceId) const
210+
{
211+
return !m_hiddenIds.contains(surfaceId);
212+
}
213+
209214
QStandardItem *TraySortOrderModel::findItemByVisualIndex(int visualIndex, VisualSections visualSection) const
210215
{
211216
QStandardItem * result = nullptr;

panels/dock/tray/traysortordermodel.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class TraySortOrderModel : public QStandardItemModel
6161
Q_INVOKABLE bool dropToStashTray(const QString & draggedSurfaceId, int dropVisualIndex, bool isBefore);
6262
Q_INVOKABLE bool dropToDockTray(const QString & draggedSurfaceId, int dropVisualIndex, bool isBefore);
6363
Q_INVOKABLE void setSurfaceVisible(const QString & surfaceId, bool visible);
64+
Q_INVOKABLE bool isDisplayedSurface(const QString &surfaceId) const;
6465

6566
signals:
6667
void collapsedChanged(bool);

0 commit comments

Comments
 (0)