[decoration] Fix propagation of client size

Even though the frame geometry and the client geometry have a connection
between themselves, it doesn't mean that the frame geometry will change
if the client geometry has changed and vice versa. For example, it can be
the case when the border size changes. The frame geometry won't change,
but the client geometry will.

In general, similar to the frameGeometryChanged signal, we need another
signal that is emitted when the client geometry has been changed that
can be used then in DecoratedClientImpl.

Unfortunately, 5.19 release is around the corner and I would prefer not
to do any geometry-related changes in order to avoid introducing new
regressions.

In order to fix the propagation of the client size to decorations, this
change ports DecoratedClientImpl from frameGeometryChanged to a signal
that is emitted whenever geometry of any kind has been changed.

BUG: 419080
FIXED-IN: 5.19.0
This commit is contained in:
Vlad Zahorodnii 2020-05-21 08:53:38 +03:00 committed by David Edmundson
parent b2df11bf7e
commit 621b2e1cde

View file

@ -54,7 +54,7 @@ DecoratedClientImpl::DecoratedClientImpl(AbstractClient *client, KDecoration2::D
emit decoratedClient->activeChanged(client->isActive());
}
);
connect(client, &AbstractClient::frameGeometryChanged, this,
connect(client, &AbstractClient::geometryShapeChanged, this,
[decoratedClient, this]() {
if (m_client->clientSize() == m_clientSize) {
return;