D17215: Try to invalidate quad cache when shadow is changed
Vlad Zagorodniy <[email protected]>
| Newsgroups | gmane.comp.kde.devel.kwin |
|---|---|
| Message-ID | <[email protected]> |
zzag created this revision. zzag added a reviewer: KWin. Herald added a project: KWin. Herald added a subscriber: kwin. zzag requested review of this revision. REVISION SUMMARY 213239a0ea0a9c0967bb68d1eda7a8d4d6a09498 <https://phabricator.kde.org/R108:213239a0ea0a9c0967bb68d1eda7a8d4d6a09498> 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 the window quads cache handling away from the shadow code. BUG: 399490 FIXED-IN: 5.15.0 TEST PLAN Decoration tooltips are no longer blank. REPOSITORY R108 KWin BRANCH introduce-shadowchanged-signal REVISION DETAIL https://phabricator.kde.org/D17215 AFFECTED FILES scene.cpp scene.h shadow.cpp toplevel.h To: zzag, #kwin Cc: kwin, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart