diff --git a/frame/dbus/dockdaemonadaptors.cpp b/frame/dbus/dockdaemonadaptors.cpp index 0e0f1ffdc..1a11e4920 100644 --- a/frame/dbus/dockdaemonadaptors.cpp +++ b/frame/dbus/dockdaemonadaptors.cpp @@ -17,6 +17,7 @@ DockDaemonDBusAdaptor::DockDaemonDBusAdaptor(QObject *parent) connect(TaskManager::instance(), &TaskManager::frontendWindowRectChanged, this, &DockDaemonDBusAdaptor::FrontendWindowRectChanged); connect(TaskManager::instance(), &TaskManager::showRecentChanged, this, &DockDaemonDBusAdaptor::showRecentChanged); connect(TaskManager::instance(), &TaskManager::showMultiWindowChanged, this, &DockDaemonDBusAdaptor::ShowMultiWindowChanged); + connect(TaskManager::instance(), &TaskManager::windowMarginChanged, this, &DockDaemonDBusAdaptor::WindowMarginChanged); connect(DockSettings::instance(), &DockSettings::positionModeChanged, this, &DockDaemonDBusAdaptor::PositionChanged); connect(DockSettings::instance(), &DockSettings::hideModeChanged, this, &DockDaemonDBusAdaptor::HideModeChanged); connect(DockSettings::instance(), &DockSettings::displayModeChanged, this, &DockDaemonDBusAdaptor::DisplayModeChanged); @@ -104,6 +105,11 @@ void DockDaemonDBusAdaptor::setWindowSizeFashion(uint value) } } +uint DockDaemonDBusAdaptor::windowMargin() const +{ + return TaskManager::instance()->windowMargin(); +} + QRect DockDaemonDBusAdaptor::frontendWindowRect() const { return TaskManager::instance()->getFrontendWindowRect(); diff --git a/frame/dbus/dockdaemonadaptors.h b/frame/dbus/dockdaemonadaptors.h index 8538d4086..83ab7a6a4 100644 --- a/frame/dbus/dockdaemonadaptors.h +++ b/frame/dbus/dockdaemonadaptors.h @@ -100,6 +100,7 @@ class DockDaemonDBusAdaptor: public QDBusAbstractAdaptor " \n" " \n" " \n" + " \n" " \n" " \n" " \n" @@ -142,6 +143,9 @@ public: // PROPERTIES uint windowSizeFashion() const; void setWindowSizeFashion(uint value); + Q_PROPERTY(uint WindowMargin READ windowMargin NOTIFY WindowMarginChanged) + uint windowMargin() const; + Q_PROPERTY(QRect FrontendWindowRect READ frontendWindowRect NOTIFY FrontendWindowRectChanged) QRect frontendWindowRect() const; @@ -198,6 +202,7 @@ Q_SIGNALS: // SIGNALS void ShowTimeoutChanged(uint value) const; void WindowSizeEfficientChanged(uint value) const; void WindowSizeFashionChanged(uint value) const; + void WindowMarginChanged(uint value) const; void showRecentChanged(bool) const; void ShowMultiWindowChanged(bool) const; -}; \ No newline at end of file +}; diff --git a/frame/taskmanager/taskmanager.cpp b/frame/taskmanager/taskmanager.cpp index 672e768f8..d66b8fa61 100644 --- a/frame/taskmanager/taskmanager.cpp +++ b/frame/taskmanager/taskmanager.cpp @@ -635,6 +635,9 @@ void TaskManager::initSettings() connect(SETTING, &DockSettings::showRecentChanged, this, &TaskManager::onShowRecentChanged); connect(SETTING, &DockSettings::showMultiWindowChanged, this, &TaskManager::onShowMultiWindowChanged); connect(SETTING, &DockSettings::displayModeChanged, this, &TaskManager::setDisplayMode); + connect(SETTING, &DockSettings::displayModeChanged, this, [this]() { + Q_EMIT windowMarginChanged(windowMargin()); + }); } /** @@ -1511,6 +1514,11 @@ void TaskManager::setPosition(int position) SETTING->setPositionMode(Position(position)); } +uint TaskManager::windowMargin() const +{ + return SETTING->getDisplayMode() == Dock::Efficient ? 0 : 10; +} + /** * @brief TaskManager::getShowTimeout 获取显示超时接口 * @return diff --git a/frame/taskmanager/taskmanager.h b/frame/taskmanager/taskmanager.h index ed6b2879d..c89210221 100644 --- a/frame/taskmanager/taskmanager.h +++ b/frame/taskmanager/taskmanager.h @@ -87,6 +87,7 @@ public: void setIconSize(uint size); int getPosition(); void setPosition(int position); + uint windowMargin() const; uint getShowTimeout(); void setShowTimeout(uint timeout); uint getWindowSizeEfficient(); @@ -137,6 +138,7 @@ Q_SIGNALS: void frontendWindowRectChanged(const QRect &dockRect); void showRecentChanged(bool); void showMultiWindowChanged(bool); + void windowMarginChanged(uint); public Q_SLOTS: void updateHideState(bool delay);