Skip to content
  • Eike Hein's avatar
    Improved and optimized Pager and Activity Pager · 4b9d8046
    Eike Hein authored
    Summary:
    * 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.
    
    * 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.
    
    * Don't destroy and recreate all delegates every time window focus
      or other window state changes. Saves a lot of CPU time.
    
    * Save various items and objects by e.g. creating window icon and
    * desktop
      label items only when needed and cleaning up frontend code.
    Lazy-create
      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.
    
    * Avoid doing tons of unnecessary calculations during DND.
    
    * Some minor HiDPI scaling fixes.
    
    * Other cleanup: More visualization-agnostic backend, coding style.
    
    Depends on D2674, D2675.
    
    Reviewers: #plasma, davidedmundson
    
    Subscribers: plasma-devel
    
    Tags: #plasma
    
    Differential Revision: https://phabricator.kde.org/D2676
    4b9d8046