<table><tr><td style="">graesslin added inline comments.
</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/D3301" rel="noreferrer">View Revision</a></tr></table><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/D3301#inline-12932" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">xwindowtasksmodel.cpp:432</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: #d0ffd0;">        <span class="n">data</span><span class="p">.</span><span class="n">pid</span> <span style="color: #aa2211">=</span> <span class="n">NETWinInfo</span><span class="p">(</span><span class="n">QX11Info</span><span style="color: #aa2211">::</span><span class="n">connection</span><span class="p">(),</span> <span class="n">window</span><span class="p">,</span> <span class="n">QX11Info</span><span style="color: #aa2211">::</span><span class="n">appRootWindow</span><span class="p">(),</span> <span class="n">NET</span><span style="color: #aa2211">::</span><span class="n">WMPid</span><span class="p">,</span> <span style="color: #601200">0</span><span class="p">).</span><span class="n">pid</span><span class="p">();</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">I would prefer if we expose it through KWindowInfo. Creating an additional NETWinInfo causes an additional x-server roundtrip here.</p>

<p style="padding: 0; margin: 8px;">Also a word of warning: just because you have a pid, does not mean that the pid is from the local system. Also remote X clients might have the pid exposed. This means you also need to verify that the window is from the local system. And now the really bad news: that's not trivial. If you want to see a working implementation check kwin/client_machine.cpp. This is the result of about 15 years of KWin experience and trying to figure out correctly whether the window is from the local system without blocking. Yes, over the years we had multiple approaches which could crash, freeze and detect it incorrectly.</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>rPLASMAWORKSPACE Plasma Workspace</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D3301" rel="noreferrer">https://phabricator.kde.org/D3301</a></div></div><br /><div><strong>EMAIL PREFERENCES</strong><div><a href="https://phabricator.kde.org/settings/panel/emailpreferences/" rel="noreferrer">https://phabricator.kde.org/settings/panel/emailpreferences/</a></div></div><br /><div><strong>To: </strong>broulik, Plasma<br /><strong>Cc: </strong>graesslin, plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas<br /></div>