Implement geometry update blocking in ShellClient
ClosedPublic

Authored by graesslin on Nov 22 2017, 6:25 PM.

Details

Summary

Commit 188491d3922180f1e1bba8fa2cd3fd2aa4a527c0 introduced a regression
in ShellClient and broke the QuickTiling test - sorry about that.

This change fixes the failing test. The main reason was a slight change
in semantics of setGeometry. But the real problem is/was that the
geometry update blocking is not supported in ShellClient.

This change brings in the checks from Client to ShellClient, thus that
the geometry is properly blocked and when unblocked the geometry is
updated correctly or a request is sent. What makes it rather difficult is
that the geometry update blocker operates on an updated geom while
ShellClient::setGeometry needs to compare to the original geom to
determine whether a direct update or a request is required.

Thanks to supporting geometry update blocking the changeMaximize calls
are adjusted to use setGeometry instead of requestingGeometry directly.

Overall this is an important improvement and might also allow us to no
longer require the special RequestGeometryBlocker in ShellClient.

Test Plan

Tests pass

Diff Detail

Repository
R108 KWin
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
graesslin created this revision.Nov 22 2017, 6:25 PM
Restricted Application added a project: KWin. · View Herald TranscriptNov 22 2017, 6:25 PM
Restricted Application added subscribers: kwin, plasma-devel. · View Herald Transcript
Restricted Application edited projects, added Plasma; removed KWin. · View Herald TranscriptDec 3 2017, 4:34 PM
davidedmundson accepted this revision.Dec 4 2017, 11:27 AM
davidedmundson added a subscriber: davidedmundson.

not really an expert here in the geometry stuff, but it looks in line with the X code.

This revision is now accepted and ready to land.Dec 4 2017, 11:27 AM
Restricted Application edited projects, added KWin; removed Plasma. · View Herald TranscriptDec 4 2017, 11:27 AM
This revision was automatically updated to reflect the committed changes.
Restricted Application edited projects, added Plasma; removed KWin. · View Herald TranscriptDec 4 2017, 4:24 PM