<table><tr><td style="">davidedmundson requested changes to this revision.<br />davidedmundson added a comment.<br />This revision now requires changes to proceed.
</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/D28616">View Revision</a></tr></table><br /><div><div><p>Direction is beautiful, so much red!</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/D28616#inline-162977">View Inline</a><span style="color: #4b4d51; font-weight: bold;">logout.cpp:229</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(251, 175, 175, .7);">        <span class="bright"></span><span style="color: #74777d"><span class="bright">// to undesired effects while s</span>ession<span class="bright"> saving (dialogs</span></span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">        <span class="bright"></span><span style="color: #74777d"><span class="bright">// wouldn't be activated), so it needs be assured that</span></span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">        <span style="color: #74777d">// KWin will turn it off temporarily before any other</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">        <span style="color: #74777d">// user interaction takes place.</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">        <span style="color: #74777d">// Therefore, make sure the WM finishes its phase 1</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">        <span style="color: #74777d">// before others a chance to change anything.</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">        <span style="color: #74777d">// KWin will check if the session manager is ksmserver,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">        <span style="color: #74777d">// and if yes it will save in phase 1 instead of phase 2.</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">        <span style="color: #aa4000">if</span><span class="p">(</span> <span class="n">isWM</span><span class="p">(</span> <span class="n">c</span> <span class="p">)</span> <span class="p">)</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">            <span style="color: #aa2211">++</span><span class="n">wmPhase1WaitingCount</span><span class="p">;</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">    <span class="p">}</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">    <span style="color: #aa4000">if</span> <span class="p">(</span><span class="n">wmPhase1WaitingCount</span> <span style="color: #aa2211">></span> <span style="color: #601200">0</span><span class="p">)</span> <span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">        <span class="n">foreach</span><span class="p">(</span> <span class="n">KSMClient</span><span style="color: #aa2211">*</span> <span class="n">c</span><span class="p">,</span> <span class="n">clients</span> <span class="p">)</span> <span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">            <span style="color: #aa4000">if</span><span class="p">(</span> <span class="n">isWM</span><span class="p">(</span> <span class="n">c</span> <span class="p">)</span> <span class="p">)</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">                <span class="n">SmsSaveYourself</span><span class="p">(</span> <span class="n">c</span><span style="color: #aa2211">-></span><span class="n">connection</span><span class="p">(),</span> <span class="n">saveType</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">                            <span style="color: #304a96">true</span><span class="p">,</span> <span class="n">SmInteractStyleAny</span><span class="p">,</span> <span style="color: #304a96">false</span> <span class="p">);</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">        <span class="bright"></span><span style="color: #aa4000"><span class="bright">auto</span></span><span class="bright"> </span><span class="n"><span class="bright">saveSessionCall</span></span><span class="bright"> </span><span style="color: #aa2211"><span class="bright">=</span></span><span class="bright"> </span><span class="n"><span class="bright">m_kwinInterface</span></span><span class="bright"></span><span style="color: #aa2211"><span class="bright">-></span></span><span class="bright"></span><span class="n"><span class="bright">aboutToSaveS</span>ession<span class="bright"></span></span><span class="bright"></span><span class="p"><span class="bright">(</span></span><span class="bright"></span><span class="n"><span class="bright">currentSession</span></span><span class="bright"></span><span class="p"><span class="bright">());</span></span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">        <span class="bright"></span><span class="n"><span class="bright">saveSessionCall</span></span><span class="bright"></span><span class="p"><span class="bright">.</span></span><span class="bright"></span><span class="n"><span class="bright">waitForFinished</span></span><span class="bright"></span><span class="p"><span class="bright">();</span></span><span class="bright"> </span><span style="color: #74777d"><span class="bright">// hehe</span></span>
</div><div style="padding: 0 8px; margin: 0 4px; ">    <span class="p">}</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">We do want a comment saying why we want to pause until kwin continues, and not going to deadlock.</p>

<p style="padding: 0; margin: 8px;">I'm not sure "hehe" quite covers all of that.</p></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/D28616#inline-162980">View Inline</a><span style="color: #4b4d51; font-weight: bold;">logout.cpp:248</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; "><span class="p">{</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">abort</span><span class="p">();</span> <span style="color: #74777d">// FIXME IMPLEMENT NEW SAVING ALSO HERE!</span>
</div><div style="padding: 0 8px; margin: 0 4px; ">    <span style="color: #aa4000">if</span> <span class="p">(</span> <span class="n">state</span> <span style="color: #aa2211">!=</span> <span class="n">Idle</span> <span class="p">)</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">well noticed :)</p>

<p style="padding: 0; margin: 8px;">Blocking on that.</p>

<p style="padding: 0; margin: 8px;">This is for when you use "manually saved session".</p></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/D28616#inline-162978">View Inline</a><span style="color: #4b4d51; font-weight: bold;">server.h:214</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; ">        <span class="n">Idle</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">        <span class="n">LaunchingWM</span><span class="p">,</span> <span class="n">Restoring</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">        <span class="n">Shutdown</span><span class="p">,</span> <span class="n">Checkpoint</span><span class="p">,</span> <span class="n">Killing</span><span class="p">,</span> <span class="n">KillingWM</span><span class="p">,</span> <span class="n">WaitingForKNotify</span><span class="p">,</span> <span style="color: #74777d">// shutdown</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">        <span class="n">LaunchingWM<span class="bright"></span></span><span class="bright"> </span><span style="color: #74777d"><span class="bright">/* FIXME rename this*/</span></span><span class="p">,</span> <span class="n">Restoring</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">        <span class="n">Shutdown</span><span class="p">,</span> <span class="n">Checkpoint</span><span class="p">,</span> <span class="n">Killing</span><span class="p">,</span> <span class="n">KillingWM<span class="bright">DONTUSETHIS</span></span><span class="p">,</span> <span class="n">WaitingForKNotify</span><span class="p">,</span> <span style="color: #74777d">// shutdown</span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">Can you not just kill them?<br />
It's not public API</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R120 Plasma Workspace</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D28616">https://phabricator.kde.org/D28616</a></div></div><br /><div><strong>To: </strong>broulik, Plasma, davidedmundson<br /><strong>Cc: </strong>davidedmundson, plasma-devel, Orage, LeGast00n, The-Feren-OS-Dev, cblack, jraleigh, zachus, fbampaloukas, GB_2, ragreen, ZrenBot, ngraham, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart<br /></div>