<table><tr><td style="">davidedmundson added a comment.
</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/D19255">View Revision</a></tr></table><br /><div><div><p>I wouldn't say it's handling it incorrectly. In the scenario you've give the logical size hasn't changed.</p>

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>a single wl_output::done event might be generated but not the respective xdg_output::done event.</p></blockquote>

<p>I was under the impression that xwayland expects an xdg_output::done to have a corresponding wl_output::done, but not necessarily the other way round?</p>

<p>If we do need them to always be paired we'll have the same issue if you change refresh rate without changing the resolution.</p>

<p>The only long term option I can think of that would fix that is exposing the dirty bit publicly and having kwin do:</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">if (output->isDirty() || xdgOutput->isDirty()) {
  output->done();
  xdgOutput->done();
}</pre></div>

<p>(after porting Output to this same pattern)</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R127 KWayland</div></div></div><br /><div><strong>BRANCH</strong><div><div>master</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D19255">https://phabricator.kde.org/D19255</a></div></div><br /><div><strong>To: </strong>davidedmundson, KWin, romangg<br /><strong>Cc: </strong>romangg, kde-frameworks-devel, michaelh, ngraham, bruns<br /></div>