Skip to content
  • David Edmundson's avatar
    Clamp XdgShellClient::clientSize to surface size, not m_windowGeometry · 89024e2b
    David Edmundson authored
    Summary:
    It's perfectly legitimate to call setWindowSize before a buffer is
    attached. This seems to have happen with plasma surfaces that commit
    when attaching a shadow, but technically could happen anywhere.
    
    By clamping to the applied surface here, we get the wrong window size
    cached and not re-evaluated when a surface is eventually applied. This
    leaves us thinking the windowsize is empty but with a massive margin
    which actually holds the content.
    
    We want all internal usages of xdgshellclient to use the window geometry
    set. Only the wider kwin part needs to care about clamping it to the
    surface.
    
    This fixes popup placement in the plasma panel
    BUG: 415317
    
    As well as ghost notification popups with no background contrast that
    you can't interact with.
    
    Test Plan: Ran kwin
    
    Reviewers: #kwin, zzag
    
    Reviewed By: #kwin, zzag
    
    Subscribers: romangg, kwin
    
    Tags: #kwin
    
    Differential Revision: https://phabricator.kde.org/D26233
    89024e2b