D22136: Decorate only toplevel internal clients

Vlad Zagorodniy noreply at phabricator.kde.org
Fri Jun 28 13:01:41 BST 2019


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
  Unfortunately Aurorae decoration engine creates several internal clients
  per each decoration. One of those clients represents QOffscreenSurface,
  which is not a toplevel. Given that no QWindow object will be found for
  such clients, m_internalWindowFlags contains undefined value. The client
  may or may not have frameless window hint, etc.
  
  Luckily, QOffscreenSurface sets FramelessWindowHint flag, but because
  InternalClient is not able to find matching QWindow object, cached
  QWindow flags won't have that hint set.
  
  Thus InternalClient will attempt to decorate QOffscreenSurface. A new
  Aurorae decoration will be created, which means a new QOffscreenSurface
  will be created, which means a new Aurorae decoration will be created,
  and so on.
  
  This change restricts subset of internal clients that can be decorated.
  Only clients with valid m_internalWindow can be decorated. If m_internalWindow
  isn't null, then m_internalWindowFlags is guaranteed to be valid as well.
  
  BUG: 407612
  FIXED-IN: 5.16.3

REPOSITORY
  R108 KWin

BRANCH
  ugly-hack

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

AFFECTED FILES
  internal_client.cpp

To: zzag, #kwin
Cc: kwin, LeGast00n, sbergeron, jraleigh, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, Pitel, iodelay, crozbo, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kwin/attachments/20190628/afdc5d1a/attachment.html>


More information about the kwin mailing list