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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.