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