diff --git a/decorations/decoratedclient.h b/decorations/decoratedclient.h --- a/decorations/decoratedclient.h +++ b/decorations/decoratedclient.h @@ -66,6 +66,7 @@ QPalette palette() const override; QColor color(KDecoration2::ColorGroup group, KDecoration2::ColorRole role) const override; bool providesContextHelp() const override; + QSize size() const override; int width() const override; WId windowId() const override; diff --git a/decorations/decoratedclient.cpp b/decorations/decoratedclient.cpp --- a/decorations/decoratedclient.cpp +++ b/decorations/decoratedclient.cpp @@ -67,6 +67,7 @@ if (oldSize.height() != m_clientSize.height()) { emit decoratedClient->heightChanged(m_clientSize.height()); } + emit decoratedClient->sizeChanged(m_clientSize); } ); connect(client, &AbstractClient::desktopChanged, this, @@ -273,6 +274,11 @@ return m_clientSize.height(); } +QSize DecoratedClientImpl::size() const +{ + return m_clientSize; +} + bool DecoratedClientImpl::isMaximizedVertically() const { return m_client->requestedMaximizeMode() & MaximizeVertical; diff --git a/kcmkwin/kwindecoration/declarative-plugin/previewclient.h b/kcmkwin/kwindecoration/declarative-plugin/previewclient.h --- a/kcmkwin/kwindecoration/declarative-plugin/previewclient.h +++ b/kcmkwin/kwindecoration/declarative-plugin/previewclient.h @@ -90,6 +90,7 @@ int width() const override; int height() const override; + QSize size() const override; QPalette palette() const override; QColor color(ColorGroup group, ColorRole role) const override; Qt::Edges adjacentScreenEdges() const override; diff --git a/kcmkwin/kwindecoration/declarative-plugin/previewclient.cpp b/kcmkwin/kwindecoration/declarative-plugin/previewclient.cpp --- a/kcmkwin/kwindecoration/declarative-plugin/previewclient.cpp +++ b/kcmkwin/kwindecoration/declarative-plugin/previewclient.cpp @@ -111,6 +111,11 @@ connect(this, &PreviewClient::bordersLeftEdgeChanged, this, emitEdgesChanged); connect(this, &PreviewClient::bordersRightEdgeChanged, this, emitEdgesChanged); connect(this, &PreviewClient::bordersBottomEdgeChanged, this, emitEdgesChanged); + auto emitSizeChanged = [this, c]() { + emit c->sizeChanged(c->size()); + }; + connect(this, &PreviewClient::widthChanged, this, emitSizeChanged); + connect(this, &PreviewClient::heightChanged, this, emitSizeChanged); qApp->installEventFilter(this); } @@ -133,6 +138,11 @@ return m_height; } +QSize PreviewClient::size() const +{ + return QSize(m_width, m_height); +} + QString PreviewClient::caption() const { return m_caption;