<table><tr><td style="">hein created this revision.<br />hein added reviewers: Plasma, davidedmundson.<br />hein added a subscriber: plasma-devel.<br />hein added dependencies: D2675: Add desktop layout rows property., D2674: Add optional filtering by SkipPager window state..<br />Restricted Application added a project: Plasma.</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/D2676" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><ul class="remarkup-list">
<li class="remarkup-list-item">Unify Desktop and Activity Pager applets. The latter was an out-of- sync fork of the former, with 99% code copied needlessly. Separate commit to kdeplasma-addons pending that slashes the Activity Pager down to a .desktop file.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Share window state monitoring backend with the Task Manager by porting to libtaskmanager. Reduces the window state monitoring in a typical plasmashell instance from two to one. Saves CPU time, memory use and improves support for Wayland.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Don't destroy and recreate all delegates every time window focus or other window state changes. Saves a lot of CPU time.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Save various items and objects by e.g. creating window icon and</li>
<li class="remarkup-list-item">desktop label items only when needed and cleaning up frontend code.</li>
</ul>

<p>Lazy-create</p>

<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);">the data source needed to show the activity manager once it's needed.
Results in much lighter Pager (at least two items per window and one
item per desktop) with default settings.</pre></div>

<ul class="remarkup-list">
<li class="remarkup-list-item">Avoid doing tons of unnecessary calculations during DND.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Some minor HiDPI scaling fixes.</li>
</ul>

<ul class="remarkup-list">
<li class="remarkup-list-item">Other cleanup: More visualization-agnostic backend, coding style.</li>
</ul>

<p>Depends on <a href="https://phabricator.kde.org/D2674" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;" rel="noreferrer">D2674</a>, <a href="https://phabricator.kde.org/D2675" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: none;" rel="noreferrer">D2675</a>.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>rPLASMADESKTOP Plasma Desktop</div></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/D2676" rel="noreferrer">https://phabricator.kde.org/D2676</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>applets/pager/CMakeLists.txt<br />
applets/pager/package/contents/ui/configGeneral.qml<br />
applets/pager/package/contents/ui/main.qml<br />
applets/pager/package/metadata.desktop<br />
applets/pager/plugin/model.cpp<br />
applets/pager/plugin/model.h<br />
applets/pager/plugin/pager.cpp<br />
applets/pager/plugin/pager.h<br />
applets/pager/plugin/pagermodel.cpp<br />
applets/pager/plugin/pagermodel.h<br />
applets/pager/plugin/pagerplugin.cpp<br />
applets/pager/plugin/windowmodel.cpp<br />
applets/pager/plugin/windowmodel.h</div></div></div><br /><div><strong>EMAIL PREFERENCES</strong><div><a href="https://phabricator.kde.org/settings/panel/emailpreferences/" rel="noreferrer">https://phabricator.kde.org/settings/panel/emailpreferences/</a></div></div><br /><div><strong>To: </strong>hein, Plasma, davidedmundson<br /><strong>Cc: </strong>plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas<br /></div>