1. 01 Nov, 2020 5 commits
  2. 31 Oct, 2020 2 commits
    • Olivier Fourdan's avatar
      compositor: Add support for opaque regions · e2c690a9
      Olivier Fourdan authored
      Opaque region is a hint set by the clients via the _NET_WM_OPAQUE_REGION
      property to indicate the compositor which regions of an ARGB window are
      considered opaque and therefore can be culled out during repaint.
      
      While this is of little use with regular RGB windows, with the planned
      move to client-side decorations in xfce, we'll have more and more ARGB
      windows, making such an optimization a beneficial improvement.
      Signed-off-by: Olivier Fourdan's avatarOlivier Fourdan <fourdan@xfce.org>
      e2c690a9
    • Olivier Fourdan's avatar
      compositor: Make cursor zoom optional · 39eb0435
      Olivier Fourdan authored
      Xfwm4 4.14 made the cursor zoom along with the desktop. While this
      sounds like a sensible thing to do, it's not necessarily an improvement
      for accessibility, because an enlarged cursor also hides what's being
      zoomed underneath.
      
      Add a new option to control whether the pointer is zoomed along with the
      rest of the desktop.
      Signed-off-by: Olivier Fourdan's avatarOlivier Fourdan <fourdan@xfce.org>
      Closes: #439
      39eb0435
  3. 30 Oct, 2020 1 commit
  4. 27 Oct, 2020 4 commits
  5. 26 Oct, 2020 1 commit
  6. 16 Oct, 2020 7 commits
  7. 12 Oct, 2020 1 commit
  8. 09 Oct, 2020 1 commit
  9. 03 Oct, 2020 2 commits
  10. 02 Oct, 2020 1 commit
  11. 28 Sep, 2020 1 commit
  12. 26 Sep, 2020 1 commit
  13. 19 Sep, 2020 1 commit
    • Olivier Fourdan's avatar
      More XErrors traps · 3119b50b
      Olivier Fourdan authored
      Previously we would leak error traps in free_win_data() causing
      slowdowns overtime as the list of requests grows.
      
      While fixing the leak is crucial, it also unveiled several places where
      actual error traps are missing, causing xfwm4 to abort more often.
      
      Based on XErrors reported, the issue is triggered when freeing pixmaps
      or render pictures.
      
      Add more XErrors traps to catch those errors.
      Signed-off-by: Olivier Fourdan's avatarOlivier Fourdan <fourdan@xfce.org>
      #433
      #435
      #436
      3119b50b
  14. 18 Sep, 2020 1 commit
  15. 16 Sep, 2020 2 commits
    • bob5972's avatar
      compositor: Add cwindow_hash to optimize find_cwindow_in_screen · a1fbb8f1
      bob5972 authored
      On my system when the window manager is mostly idling (0-12 tiny
      updates per second), about half the CPU time in xfwm4 is spent in
      find_cwindow_in_screen, iterating the linked list looking for a
      matching Window id.  Instead, this patch adds a GHashTable to map
      Window ids to CWindows, completely eliminating that cost in my
      profiles, resulting in a 0.3-1.0% of a core total CPU reduction for
      this workload.
      Signed-off-by: bob5972's avatarMichael Banack <bob5972@banack.net>
      a1fbb8f1
    • bob5972's avatar
      compositor: Add define for compositor_timeout_cb interval · 2fa246ca
      bob5972 authored
      The call to g_timeout_add in add_repair seems to be mixing up priority
      and callback interval.  Instead, let's call g_timeout_add_full to make
      it clear there are two separate fields, and add an appropriate define
      for the callback interval, setting it to the same 1ms value it was
      currently using.
      Signed-off-by: bob5972's avatarMichael Banack <bob5972@banack.net>
      2fa246ca
  16. 14 Sep, 2020 1 commit
  17. 11 Sep, 2020 1 commit
  18. 07 Sep, 2020 1 commit
  19. 02 Sep, 2020 1 commit
  20. 23 Aug, 2020 1 commit
  21. 20 Aug, 2020 1 commit
  22. 09 Aug, 2020 2 commits
  23. 08 Aug, 2020 1 commit
    • bob5972's avatar
      compositor: use g_slice allocator for compositor windows · 390af609
      bob5972 authored
      On my system, 2-4% of the CPU time in xfwm4 is being spend in
      find_cwindow_in_screeni() pulling in entries from the linked list on
      a lightly updating desktop.
      
      After this change, 25-50% of that CPU is gone, presumably because the
      slice allocators have better locality of the list-entries.
      
      Closes: #416
      390af609