<table><tr><td style="">romangg 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/D12820">View Revision</a></tr></table><br /><div><div><p>How is a change of neighbors supposed to work for clients already bound to the proxy objects? For example consider virtual desktop grid:</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);">D1 D2
D3 D4</pre></div>
<p>Compositor removes <tt style="background: #ebebeb; font-size: 13px;">D3</tt> and let <tt style="background: #ebebeb; font-size: 13px;">D4</tt> flow back to the left:</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);">D1 D2
D4</pre></div>
<p><tt style="background: #ebebeb; font-size: 13px;">desktop_removed</tt> event is sent and for <tt style="background: #ebebeb; font-size: 13px;">D1</tt> and <tt style="background: #ebebeb; font-size: 13px;">D2</tt> bottom neighbor changes, for <tt style="background: #ebebeb; font-size: 13px;">D4</tt> left and top neighbor change. To have a consistent state on the client at all time, one would need to tell the client when it has fully received all these information coming from multiple interfaces. Maybe it is enough to send the <tt style="background: #ebebeb; font-size: 13px;">done</tt> event of the management interface not after itself has finished all events, but also every desktop interface has sent it. Not sure if this is fine protocol hygiene though. If it is we need to add it to the descriptions of the interfaces.</p></div></div><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D12820#inline-69905">View Inline</a><span style="color: #4b4d51; font-weight: bold;">plasma-virtual-desktop.xml:25</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span style="color: #00702a"></description></span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span style="color: #00702a"><arg</span> <span style="color: #354bb3">name=</span><span style="color: #766510">"desktop"</span> <span style="color: #354bb3">type=</span><span style="color: #766510">"new_id"</span> <span style="color: #354bb3">interface=</span><span style="color: #766510">"org_kde_plasma_virtual_desktop"</span><span style="color: #00702a">/></span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);"> <span style="color: #00702a"><arg</span> <span style="color: #354bb3">name=</span><span style="color: #766510">"id"</span> <span style="color: #354bb3">type=</span><span style="color: #766510">"string"</span> <span style="color: #354bb3">summary=</span><span style="color: #766510">"Unique id of the desktop"</span><span style="color: #00702a">/></span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">This arg name should be <tt style="background: #ebebeb; font-size: 13px;">id</tt> (judging from other example protocols). Find a different arg name for the second argument, for example <tt style="background: #ebebeb; font-size: 13px;">desktop_id</tt> or just <tt style="background: #ebebeb; font-size: 13px;">desktop</tt>. Together:</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);"><arg name="id" type="new_id" interface="org_kde_plasma_virtual_desktop"/>
<arg name="desktop" type="string" summary="Unique identifier string of the desktop"/></pre></div></div></div><br /><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D12820#inline-66160">View Inline</a><span style="color: #4b4d51; font-weight: bold;">mart</span> wrote in <span style="color: #4b4d51; font-weight: bold;">plasma-window-management.xml:273</span></div>
<div style="margin: 8px 0; padding: 0 12px; color: #74777D;"><p style="padding: 0; margin: 8px;">tough is a thing the client asks for which may or may not be granted.. just enter_virtual_desktop looks like it's already decided?</p></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">It's a request, so it's intrinsic that it's not yet decided. You can say in the description, that the server might ignore this request, otherwise it sends the virtual_desktop_entered event.</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R127 KWayland</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D12820">https://phabricator.kde.org/D12820</a></div></div><br /><div><strong>To: </strong>mart, KWin, Plasma, graesslin, hein<br /><strong>Cc: </strong>zzag, bshah, romangg, kde-frameworks-devel, michaelh, ngraham, bruns<br /></div>