D20987: Compute correct boundaries in checkWorkspacePosition

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
  When a client sets a strut, checkWorkspacePosition will be called to
  bump clients that touch corresponding screen edge.
  
  In order to do that, checkWorkspacePosition needs to calculate client
  boundaries before and after the restricted move area was changed. As it
  turns out, if the client reserves space "between" screens, calculated
  boundaries can be incorrect, which may lead to some funky results, e.g.
  shrunken clients.
  
  For example, let's say that there is a dual-monitor setup. If a client
  reserves some amount of space at the right border of the left screen,
  then clients on the right monitor will have rightMax which is equal to
  the x coordinate of screenArea.
  
  To fix that, this change ensures that only restricted areas belonging
  to the same screen as the client are taken into account when computing
  the boundaries.
  
  BUG: 406573

REPOSITORY
  R108 KWin

BRANCH
  dont-shrink-clients

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

AFFECTED FILES
  geometry.cpp

To: zzag, #kwin
Cc: kwin, jraleigh, GB_2, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, ngraham, alexeymin, 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.