feat: add dbus property window margin

Add dbus property WindowMargin for other application to calculate
the real exclusiveArea.

Log: add dbus property window margin
This commit is contained in:
Yixue Wang 2024-01-12 13:43:49 +08:00 committed by asterwyx
parent 6b0fec0426
commit 3b567d096e
4 changed files with 22 additions and 1 deletions

View File

@ -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();

View File

@ -100,6 +100,7 @@ class DockDaemonDBusAdaptor: public QDBusAbstractAdaptor
" <property access=\"readwrite\" type=\"u\" name=\"HideTimeout\"/>\n"
" <property access=\"readwrite\" type=\"u\" name=\"WindowSizeEfficient\"/>\n"
" <property access=\"readwrite\" type=\"u\" name=\"WindowSizeFashion\"/>\n"
" <property access=\"read\" type=\"u\" name=\"WindowMargin\"/>\n"
" <property access=\"read\" type=\"(iiii)\" name=\"FrontendWindowRect\"/>\n"
" <property access=\"readwrite\" type=\"i\" name=\"HideMode\"/>\n"
" <property access=\"readwrite\" type=\"i\" name=\"DisplayMode\"/>\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;
};
};

View File

@ -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

View File

@ -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);