From 621b2e1cde28c0824df2009f12289ade560272d5 Mon Sep 17 00:00:00 2001 From: Vlad Zahorodnii Date: Thu, 21 May 2020 08:53:38 +0300 Subject: [PATCH] [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 --- decorations/decoratedclient.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/decorations/decoratedclient.cpp b/decorations/decoratedclient.cpp index 311a278139..461c627ab2 100644 --- a/decorations/decoratedclient.cpp +++ b/decorations/decoratedclient.cpp @@ -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;