diff --git a/panels/dock/dockpanel.h b/panels/dock/dockpanel.h index 4c97bf0ea..17482be71 100644 --- a/panels/dock/dockpanel.h +++ b/panels/dock/dockpanel.h @@ -127,6 +127,7 @@ private Q_SLOTS: void dockScreenChanged(QScreen *screen); void screenNameChanged(); void requestClosePopup(); + void leftEdgeClicked(const QString &minOrder); void devicePixelRatioChanged(qreal ratio); void lockedChanged(bool locked); diff --git a/panels/dock/package/main.qml b/panels/dock/package/main.qml index fb477d49d..44330bb0d 100644 --- a/panels/dock/package/main.qml +++ b/panels/dock/package/main.qml @@ -447,7 +447,25 @@ Window { } } } - + //此处为边距区域的点击实践特殊处理。 + MouseArea { + id: leftMarginArea + width: useColumnLayout ? parent.width : gridLayout.columnSpacing + height: useColumnLayout ? gridLayout.rowSpacing : parent.height + anchors.left: parent.left + anchors.top: parent.top + onClicked: { + let minOrder = Number.MAX_VALUE + + for (let i = 0; i < Applet.appletItems.rowCount(); i++) { + let itemData = Applet.appletItems.data(Applet.appletItems.index(i, 0), Qt.UserRole + 1) + if (itemData && itemData.dockOrder < minOrder) { + minOrder = itemData.dockOrder + } + } + Panel.leftEdgeClicked(minOrder) + } + } // TODO: remove GridLayout and use delegatechosser manager all items GridLayout { id: gridLayout