Skip to content
  • Vlad Zahorodnii's avatar
    Try to invalidate quad cache when shadow is changed · 90a26e2e
    Vlad Zahorodnii authored
    Summary:
    213239a0 tried to address the case when
    a wayland client gets shadow after it was mapped, but because of poor
    testing from my side, another bug was introduced. If a decoration tooltip
    or the user actions popup is shown, then in some cases it can be blank.
    
    Usually, SurfaceInterface::shadowChanged proceeds SurfaceInterface::sizeChanged,
    so when the shadow is installed, window quads cache is rebuilt. But
    because shell client already knows the geometry of the internal client,
    goemetryShapeChanged is not emitted, thus the cache is not updated.
    
    It would be better just to invalidate the cache when the shadow is
    installed, uninstalled, or updated. This reduces the number of
    unnecessary invocations of Scene::Window::buildQuads and also moves
    handling of the window quads cache away from the Shadow class.
    
    BUG: 399490
    FIXED-IN: 5.15.0
    
    Test Plan: Decoration tooltips are no longer blank.
    
    Reviewers: #kwin, davidedmundson
    
    Reviewed By: #kwin, davidedmundson
    
    Subscribers: davidedmundson, graesslin, kwin
    
    Tags: #kwin
    
    Differential Revision: https://phabricator.kde.org/D17215
    90a26e2e