Members of the KDE Community are recommended to subscribe to the kde-community mailing list at https://mail.kde.org/mailman/listinfo/kde-community to allow them to participate in important discussions and receive other important announcements

Commit 2e42f4c1 authored by David Edmundson's avatar David Edmundson

[wayland] Fix ShellClient removing borders to give the same window geometry

Summary:
In the case of going from maximised to fullscreen when decorated the
geometry of the window (as far as kwin is concerned) could remain static
if we have no panels, but we still need a newly resized buffer from the
client.

When checking if we need a new buffer or to perform the geometry change
directly we need to compare the client size without borders.

Test Plan: maximizedToFullScreen unit test

Reviewers: #kwin, graesslin

Reviewed By: #kwin, graesslin

Subscribers: kwin

Tags: #kwin

Differential Revision: https://phabricator.kde.org/D16920
parent 80da18a1
......@@ -604,7 +604,8 @@ void ShellClient::setGeometry(int x, int y, int w, int h, ForceGeometry_t force)
geom = geometryBeforeUpdateBlocking();
}
// TODO: better merge with Client's implementation
if (QSize(w, h) == geom.size() && !isWaitingForMoveResizeSync()) {
const QSize requestedClientSize = QSize(w, h) - QSize(borderLeft() + borderRight(), borderTop() + borderBottom());
if (requestedClientSize == m_clientSize && !isWaitingForMoveResizeSync()) {
// size didn't change, update directly
doSetGeometry(QRect(x, y, w, h));
updateMaximizeMode(m_requestedMaximizeMode);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment