D15496: [effects/cubeslide] Fix "sticky" windows detection on Wayland

Igor Poboiko <[email protected]>
Newsgroups gmane.comp.kde.devel.kwin
Message-ID <[email protected]>
poboiko created this revision.
poboiko added a reviewer: KWin.
poboiko added a project: KWin.
Herald added a subscriber: kwin.
poboiko requested review of this revision.

REVISION SUMMARY
  This is second part of D15175: [effects/cubeslide] Fix several cubeslide issues <https://phabricator.kde.org/D15175>, and aimed at fixing Bug 390366 <https://bugs.kde.org/show_bug.cgi?id=390366>.
  The problem was that effect relied on isManaged() to detect OSDs and notifications, that should be painted on top of the cube. On Wayland, the desktop window itself is not managed, which made it "sticky".
  
  Instead we use:
  
  - isDesktop() check to explicitly make desktop non-sticky
  - isSpecialWindow() check to explicitly make notifications and OSDs sticky
  - acceptsFocus() check is currently needed on Wayland, as isSpecialWindow() doesn't return "true" for OSDs on Wayland (to be removed in the future); thus we rely on acceptsFocus() to find "ordinary" windows.
  
  BUG: 390366
  FIXED-IN: 5.1X.X

REPOSITORY
  R108 KWin

REVISION DETAIL
  https://phabricator.kde.org/D15496

AFFECTED FILES
  effects/cube/cubeslide.cpp

To: poboiko, #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.