diff --git a/panels/dock/dockdbusproxy.cpp b/panels/dock/dockdbusproxy.cpp index 86a8ba191..b5ff337c6 100644 --- a/panels/dock/dockdbusproxy.cpp +++ b/panels/dock/dockdbusproxy.cpp @@ -279,7 +279,9 @@ QString DockDBusProxy::getPluginKey(const QString &pluginName) void DockDBusProxy::resizeDock(int offset, bool dragging) { Q_UNUSED(dragging) + parent()->setIsResizing(true); parent()->setDockSize(offset); + parent()->setIsResizing(false); } bool DockDBusProxy::showInPrimary() const diff --git a/panels/dock/dockpanel.cpp b/panels/dock/dockpanel.cpp index 7185f972b..6b41822de 100644 --- a/panels/dock/dockpanel.cpp +++ b/panels/dock/dockpanel.cpp @@ -39,6 +39,7 @@ DockPanel::DockPanel(QObject *parent) , m_compositorReady(false) , m_launcherShown(false) , m_contextDragging(false) + , m_isResizing(false) { connect(this, &DockPanel::compositorReadyChanged, this, [this] { if (!m_compositorReady) return; @@ -458,6 +459,20 @@ void DockPanel::setContextDragging(bool newContextDragging) m_helper->checkNeedHideOrNot(); emit contextDraggingChanged(); } + +bool DockPanel::isResizing() const +{ + return m_isResizing; + +} + +void DockPanel::setIsResizing(bool resizing) +{ + if (m_isResizing == resizing) + return; + m_isResizing = resizing; + emit isResizingChanged(m_isResizing); +} } #include "dockpanel.moc" diff --git a/panels/dock/dockpanel.h b/panels/dock/dockpanel.h index f574e586b..0b3318ca9 100644 --- a/panels/dock/dockpanel.h +++ b/panels/dock/dockpanel.h @@ -33,6 +33,7 @@ class DockPanel : public DS_NAMESPACE::DPanel, public QDBusContext Q_PROPERTY(bool showInPrimary READ showInPrimary WRITE setShowInPrimary NOTIFY showInPrimaryChanged FINAL) Q_PROPERTY(QString screenName READ screenName NOTIFY screenNameChanged FINAL) Q_PROPERTY(bool locked READ locked WRITE setLocked NOTIFY lockedChanged FINAL) + Q_PROPERTY(bool isResizing READ isResizing WRITE setIsResizing NOTIFY isResizingChanged FINAL) Q_PROPERTY(qreal devicePixelRatio READ devicePixelRatio NOTIFY devicePixelRatioChanged FINAL) @@ -98,6 +99,9 @@ class DockPanel : public DS_NAMESPACE::DPanel, public QDBusContext bool contextDragging() const; void setContextDragging(bool newContextDragging); + bool isResizing() const; + void setIsResizing(bool resizing); + protected: bool eventFilter(QObject *watched, QEvent *event) override; @@ -126,6 +130,7 @@ private Q_SLOTS: void lockedChanged(bool locked); void contextDraggingChanged(); + void isResizingChanged(bool isResizing); private: ColorTheme m_theme; @@ -136,6 +141,7 @@ private Q_SLOTS: bool m_compositorReady; bool m_launcherShown; bool m_contextDragging; + bool m_isResizing; }; } diff --git a/panels/dock/package/main.qml b/panels/dock/package/main.qml index 21daae943..32932da40 100644 --- a/panels/dock/package/main.qml +++ b/panels/dock/package/main.qml @@ -484,7 +484,7 @@ Window { (dock.height - dockCenterPart.implicitHeight) / 2 - (dockLeftPart.implicitHeight + 20) + Math.min((dock.height - dockCenterPart.implicitHeight) / 2 - (dockRightPart.implicitHeight + 20), 0) : 0 Behavior on Layout.leftMargin { - enabled: !dock.isDragging + enabled: !dock.isDragging && !Applet.isResizing NumberAnimation { duration: 200 easing.type: Easing.OutCubic @@ -492,7 +492,7 @@ Window { } Behavior on Layout.topMargin { - enabled: !dock.isDragging + enabled: !dock.isDragging && !Applet.isResizing NumberAnimation { duration: 200 easing.type: Easing.OutCubic