diff --git a/shell_client.cpp b/shell_client.cpp --- a/shell_client.cpp +++ b/shell_client.cpp @@ -216,6 +216,17 @@ doSetGeometry(QRect(geom.topLeft(), m_clientSize + QSize(borderLeft() + borderRight(), borderTop() + borderBottom()))); } ); + connect(s, &SurfaceInterface::scaleChanged, this, + [this] { + if (!m_unmapped) { + addWorkspaceRepaint(visibleRect()); + } + //even though the geometry in workspace co-ordinates is the same + //we need to rebuild our window quads + emit geometryShapeChanged(this, geom); + } + ); + connect(s, &SurfaceInterface::unmapped, this, &ShellClient::unmap); connect(s, &SurfaceInterface::unbound, this, &ShellClient::destroyClient); connect(s, &SurfaceInterface::destroyed, this, &ShellClient::destroyClient);