<table><tr><td style="">hein updated this revision to Diff 46916.<br />hein added a comment.
</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/D14542">View Revision</a></tr></table><br /><div><div><p>Further fixes to sync & co</p>

<ul class="remarkup-list">
<li class="remarkup-list-item">Adding a desktop could emit wrong model transactions (wrong container count was used to calculate append index).</li>
<li class="remarkup-list-item"><tt style="background: #ebebeb; font-size: 13px;">updateModifiedState</tt> (previously <tt style="background: #ebebeb; font-size: 13px;">checkModifiedState</tt>) now handles cases where desktop counts and names remained the same despite the user triggering with remove/add actions. This can happen when removing a desktop retaining the default name and adding a desktop back, for example. In this case the method will replace dummy with server ids so that the data structures match again, then avoid doing a sync to the server and disable the Apply button.</li>
<li class="remarkup-list-item">During sync, when syncing ids replace any dummy ids with server ids in the data structures. For cases similar to above - a desktop was replaced with an identically-named one, and is not handled by a remove/create -, otherwise the following block will emit setDesktopName D-Bus calls with invalid ids.</li>
</ul></div></div><br /><div><strong>REPOSITORY</strong><div><div>R108 KWin</div></div></div><br /><div><strong>CHANGES SINCE LAST UPDATE</strong><div><a href="https://phabricator.kde.org/D14542?vs=46895&id=46916">https://phabricator.kde.org/D14542?vs=46895&id=46916</a></div></div><br /><div><strong>BRANCH</strong><div><div>master</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D14542">https://phabricator.kde.org/D14542</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>kcmkwin/kwindesktop/CMakeLists.txt<br />
kcmkwin/kwindesktop/Messages.sh<br />
kcmkwin/kwindesktop/desktop.desktop<br />
kcmkwin/kwindesktop/desktopnameswidget.cpp<br />
kcmkwin/kwindesktop/desktopnameswidget.h<br />
kcmkwin/kwindesktop/desktopsmodel.cpp<br />
kcmkwin/kwindesktop/desktopsmodel.h<br />
kcmkwin/kwindesktop/kcm_kwin_virtualdesktops.desktop<br />
kcmkwin/kwindesktop/main.cpp<br />
kcmkwin/kwindesktop/main.h<br />
kcmkwin/kwindesktop/main.ui<br />
kcmkwin/kwindesktop/package/contents/ui/main.qml<br />
kcmkwin/kwindesktop/package/metadata.desktop<br />
kcmkwin/kwindesktop/virtualdesktops.cpp<br />
kcmkwin/kwindesktop/virtualdesktops.h</div></div></div><br /><div><strong>To: </strong>hein, mart, davidedmundson, ltoscano, zzag<br /><strong>Cc: </strong>davidedmundson, broulik, plasma-devel, kwin, mkulinski, ragreen, jackyalcine, Pitel, iodelay, bwowk, ZrenBot, lesliezhai, ali-mohamed, hardening, jensreuterberg, abetts, sebas, apol, mart<br /></div>