Skip to content
  • Martin Flöser's avatar
    Implement geometry update blocking in ShellClient · a8be959b
    Martin Flöser authored
    Summary:
    Commit 188491d3 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
    
    Reviewers: #plasma, #kwin
    
    Subscribers: plasma-devel, kwin
    
    Tags: #kwin
    
    Differential Revision: https://phabricator.kde.org/D8956
    a8be959b