<table><tr><td style="">gikari created this revision.<br />Herald added a project: Plasma.<br />Herald added a subscriber: plasma-devel.<br />gikari requested review of this revision.
</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/D25670">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>Window decorations button order was applied only for window headers that was controlled by KWin, but not for GTK applications with CSD.  Now it is no longer true - button order in CSD applications are in sync with the one used by KWin.</p>

<p>Only Close, Maximize, Minimize and Icon buttons are synchronised, because GTK supports only them (Actually for Application icon in KWin titles there are two gtk counterparts: <tt style="background: #ebebeb; font-size: 13px;">icon</tt> and <tt style="background: #ebebeb; font-size: 13px;">menu</tt>, see the second point below).</p>

<p>What I do not like:</p>

<ol class="remarkup-list">
<li class="remarkup-list-item">To sync settings I use KWin DBus signal that is emitted in more than 20 places besides window decoration settings. It would be sensible to use an individual signal. I would like to hear an advice about its naming.</li>
<li class="remarkup-list-item">GTK apps have so called appmenu (it is a button with an application icon), which is used in a few applications, such as Lutris or BleachBit. It is very important in applications, I believe, because without it it is not possible to fully use application, so it IMO should be always displayed. However, the user might want to not display window menu (an application) in KWin window titles, so after he decides to do that he will lose the gtk menu too. I would like to hear suggestions how to solve that problem.</li>
</ol>

<p>Possible solutions for the second item:</p>

<ol class="remarkup-list">
<li class="remarkup-list-item">Sync Kwin Menu and GTK <tt style="background: #ebebeb; font-size: 13px;">menu</tt> headerbar option. Cons: see above</li>
<li class="remarkup-list-item">Sync KWin Menu and GTK <tt style="background: #ebebeb; font-size: 13px;">icon</tt> headerbar option. Appmenu is always displayed in fixed position. Cons: There is two icons of app in headerbar.</li>
</ol></div></div><br /><div><strong>TEST PLAN</strong><div><ol class="remarkup-list">
<li class="remarkup-list-item">Open two windows alongside each other: window decorations button order settings and any gtk3 app with CSD (for example, Lutris)</li>
<li class="remarkup-list-item">Restart kded5</li>
<li class="remarkup-list-item">Apply any WD button order, apply settings</li>
<li class="remarkup-list-item">The app should change its buttons order in headerbar (if xsettingsd is not installed, on X11 only after restart)</li>
</ol></div></div><br /><div><strong>REPOSITORY</strong><div><div>R99 KDE Gtk Configuration Tool</div></div></div><br /><div><strong>BRANCH</strong><div><div>gtk-decoration-order-sync (branched from master)</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D25670">https://phabricator.kde.org/D25670</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>kded/configeditor.cpp<br />
kded/configeditor.h<br />
kded/configvalueprovider.cpp<br />
kded/configvalueprovider.h<br />
kded/gtkconfig.cpp<br />
kded/gtkconfig.h</div></div></div><br /><div><strong>To: </strong>gikari<br /><strong>Cc: </strong>plasma-devel, LeGast00n, The-Feren-OS-Dev, jraleigh, fbampaloukas, GB_2, ragreen, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, ahiemstra, mart<br /></div>