BuddiesOfBudgie / budgie-desktop

Budgie Desktop is a familiar, modern desktop environment.
https://buddiesofbudgie.org
GNU General Public License v2.0
943 stars 48 forks source link

New windowing tracker and large refactor of IconTasklist #553

Closed EbonJaeger closed 5 months ago

EbonJaeger commented 6 months ago

Description

This all started off as a replacement of Abomination with a new module leveraging libxfce4windowing. Because of the tight coupling between IconTasklist and Abomination, it quickly became way more than that, becoming a large-scale rewrite of IconTasklist.

A new module, named "Windowing," has been written as a way to wrap and extend libxfce4windowing, making code that uses it easier to maintain, as well as making more code reusable. It is a combination, in essence, of AppSys and Abomination.

The functionality of IconTasklist should be the same as the old version. If anything, there might be an additional feature or two. Previously, theme designers had no way to change the look of an IconButton if a window requested urgency. Now, a new CSS class (needs-attention) is applied when a window becomes urgent, and is removed when urgency is no longer needed.

Popovers for right-clicking an IconButton have seen a slight redesign. Pages for window controls are now created and destroyed on-demand, which should yield a small improvement to memory usage.

Some X11-specific code still exists; it's currently unavoidable while we're still an X11-only desktop environment. However, this puts us in a much better place to be able to support both X11 and Wayland in IconTasklist, and any other code that will use the new Windowing module.

Submitter Checklist