<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://git.reviewboard.kde.org/r/128457/">https://git.reviewboard.kde.org/r/128457/</a>
</td>
</tr>
</table>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
<thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
<a href="https://git.reviewboard.kde.org/r/128457/diff/2/?file=471795#file471795line1078" style="color: black; font-weight: bold; text-decoration: underline;">src/plasmaquick/dialog.cpp</a>
<span style="font-weight: normal;">
(Diff revision 2)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">1078</font></th>
<td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="k">if</span> <span class="p">(</span><span class="n">event</span><span class="o">-></span><span class="n">type</span><span class="p">()</span> <span class="o">==</span> <span class="n">QEvent</span><span class="o">::</span><span class="n"><span class="hl">Expos</span>e</span><span class="p">)</span> <span class="p">{</span></pre></td>
<th bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">1072</font></th>
<td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="k">if</span> <span class="p">(</span><span class="n">event</span><span class="o">-></span><span class="n">type</span><span class="p">()</span> <span class="o">==</span> <span class="n">QEvent</span><span class="o">::</span><span class="n"><span class="hl">PlatformSurfac</span>e</span><span class="p">)</span> <span class="p">{</span></pre></td>
</tr>
</tbody>
</table>
<div style="margin-left: 2em;">
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Actually, I think setting the state on Expose event was the one that made it work for < 5.6.1 and calls in other places were added by d_ed in attempt to workaround the bug (which didn't do much though).
So I think we can remove it now from other places but keep it in Expose event.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Sorry for the noise, but this is important to test with < Qt 5.6.1 (which I no longer have unfortunately).</p></pre>
</div>
</div>
<br />
<p>- David Rosca</p>
<br />
<p>On July 15th, 2016, 10:03 a.m. UTC, Eike Hein wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
<div>Review request for Plasma, Bhushan Shah, David Edmundson, David Rosca, Martin Gräßlin, and Marco Martin.</div>
<div>By Eike Hein.</div>
<p style="color: grey;"><i>Updated July 15, 2016, 10:03 a.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
plasma-framework
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><ul style="padding: 0;text-rendering: inherit;margin: 0 0 0 1em;line-height: inherit;white-space: normal;">
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Initially set state (and type, and flags) in response to PlatformSurfaceCreated.
We know reliably this will run before the window is mapped.</p>
</li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Drop the comment about removing setState() form showEvent handler, as
we need it to avoid state loss in this scenario:
<mgraesslin> the window gets mapped first time: everything is fine
<mgraesslin> window gets unmapped: kwin removes the state as per spec
<mgraesslin> qt gets change event and removes the states it doesn't care about
<mgraesslin> qt maps window again and sets states
<mgraesslin> we lost the state
<mgraesslin> which means we need to set the state again from our side before(!) Qt sets it
<mgraesslin> and before Qt maps the window</p>
</li>
</ul></pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">I added debug statements to XWindowTasksModel::Private::addWindow in libtaskmanager, which runs in repsonse to KWindowSystem::windowAdded and constructs a KWindowInfo for the newly-added window. Evaluating state() & NET::SkipTaskBar there after clicking the panel button to open Kicker, without this patch, it was sometimes 'false' (i.e. not skipping the taskbar) on the initial show and on subsequent shows. Setting the state in response to PlatformSurfaceCreated seems to fix the former, and keeping the setState call in showEvent (in combination with drosca's fixes to Qt 5.6.1+) is what keeps the latter working.</p></pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>autotests/CMakeLists.txt <span style="color: grey">(216769a)</span></li>
<li>autotests/dialogstatetest.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>autotests/dialogstatetest.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/plasmaquick/dialog.cpp <span style="color: grey">(be74067)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/128457/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>