<table><tr><td style="">davidedmundson 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/D8519" 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/D8519#inline-36749" rel="noreferrer">View Inline</a><span style="color: #4b4d51; font-weight: bold;">kstatusnotifieritem.cpp:453</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">d</span><span style="color: #aa2211">-></span><span class="n">menu</span> <span style="color: #aa2211">=</span> <span class="n">menu</span><span class="p">;</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">    <span class="n">d</span><span style="color: #aa2211">-></span><span class="n">menu</span><span style="color: #aa2211">-></span><span class="n">setParent</span><span class="p">(</span><span style="color: #aa4000">nullptr</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: #74777d"><span class="bright">//</span>d->menu->setParent(nullptr);</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;"><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);">make setContextMenu safe against null pointers, prevents creating a dbus menu exporter when we don't care for it, prevents re-doing work when calling setLegacySystemTrayEnabled when the object is already in the desired state and prevents creating multiple KDBusMenuExporter objects if setContextMenu is called with the same menu more than once over the lifetime of the menu (which can actually happen with this patch).

svn path=/trunk/KDE/kdelibs/; revision=1120745</pre></div>

<hr class="remarkup-hr" />

<p style="padding: 0; margin: 8px;">(yes, it really was back in SVN)</p>

<p style="padding: 0; margin: 8px;">We take ownership of the menu in this method, and it's trying to prevent accidental double deletions.</p>

<p style="padding: 0; margin: 8px;">It's a bit quirky. If this was new code I wouldn't do it, but again we can't risk breaking existing stuff.</p>

<p style="padding: 0; margin: 8px;">It's weird that it changes the window type...that sounds like a bug; I'll happily approve setting it back.</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R289 KNotifications</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D8519" rel="noreferrer">https://phabricator.kde.org/D8519</a></div></div><br /><div><strong>To: </strong>mkoller, davidedmundson, graesslin<br /><strong>Cc: </strong>Frameworks<br /></div>