diff --git a/abstract_client.h b/abstract_client.h index 1c09b215fd..7627a35128 100644 --- a/abstract_client.h +++ b/abstract_client.h @@ -560,6 +560,7 @@ protected: virtual int borderTop() const; virtual int borderBottom() const; virtual void changeMaximize(bool horizontal, bool vertical, bool adjust) = 0; + virtual void setGeometryRestore(const QRect &geo) = 0; void blockGeometryUpdates(bool block); void blockGeometryUpdates(); void unblockGeometryUpdates(); diff --git a/client.h b/client.h index ae5216d032..d90c969e47 100644 --- a/client.h +++ b/client.h @@ -495,6 +495,7 @@ protected: void doSetSkipTaskbar() override; bool belongsToDesktop() const override; bool isActiveFullScreen() const override; + void setGeometryRestore(const QRect &geo) override; private Q_SLOTS: void delayedSetShortcut(); @@ -812,6 +813,11 @@ inline QRect Client::geometryRestore() const return geom_restore; } +inline void Client::setGeometryRestore(const QRect &geo) +{ + geom_restore = geo; +} + inline MaximizeMode Client::maximizeMode() const { return max_mode; diff --git a/shell_client.h b/shell_client.h index 0e401d1747..a81e7bf09c 100644 --- a/shell_client.h +++ b/shell_client.h @@ -123,6 +123,9 @@ protected: void doSetActive() override; Layer layerForDock() const override; void changeMaximize(bool horizontal, bool vertical, bool adjust) override; + void setGeometryRestore(const QRect &geo) override { + m_geomMaximizeRestore = geo; + } private Q_SLOTS: void clientFullScreenChanged(bool fullScreen);