<table><tr><td style="">zzag created this revision.<br />Herald added a project: KWin.<br />Herald added a subscriber: kwin.<br />zzag requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D26828">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>Currently, there are a couple of issues with sizeForClientSize(). First<br />
of all, we have a method called clientSizeToFrameSize() which does similar<br />
thing except applying geometry constraints and checking window rules. The<br />
other issue is that sizeForClientSize() is doing a bit too much, it checks<br />
window rules, it applies a bunch of geometry constrains. Sometimes it<br />
does not perform conversion between client sizes and frame sizes!</p>

<p>This change attempts to address those issues by replacing sizeForClientSize<br />
with two similar methods and changing semantics of some methods of the<br />
X11Client class.</p>

<p>The most significant difference between sizeForClientSize() and the new<br />
methods is that neither constrainClientSize() nor constrainFrameSize()<br />
check window rules. This is up to users of those methods. In many places,<br />
we don't have to check window rules because we check isResizable(),<br />
which returns false if the frame size is enforced by a window rule.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R108 KWin</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D26828">https://phabricator.kde.org/D26828</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>abstract_client.cpp<br />
abstract_client.h<br />
autotests/integration/xdgshellclient_test.cpp<br />
internal_client.cpp<br />
placement.cpp<br />
rules.cpp<br />
x11client.cpp<br />
x11client.h<br />
xdgshellclient.cpp</div></div></div><br /><div><strong>To: </strong>zzag<br /><strong>Cc: </strong>kwin, Orage, LeGast00n, The-Feren-OS-Dev, jraleigh, zachus, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, iodelay, crozbo, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, abetts, sebas, apol, ahiemstra, mart<br /></div>