New windowing tracker and large refactor of IconTasklist (#553)
* windowing: Start work on new window tracker
Signed-off-by: Evan Maddock <email address hidden>
* windowing: Handle fullscreen state tracking for windows
Signed-off-by: Evan Maddock <email address hidden>
* [WIP] icon-tasklist: Begin port to libxfce4windowing
Signed-off-by: Evan Maddock <email address hidden>
* windowing: Add functions to get all groups and the active workspace
Signed-off-by: Evan Maddock <email address hidden>
* lib: Add desktop actions field to Budgie.Application
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Add new replacement GTK widgets using Windowing
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Move button geometry to it's own function and fix parameter
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Implement drawing the button indicators
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Make it compile
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Fix showing of popovers
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Implement handling left click on buttons
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Implement launching pinned apps
Signed-off-by: Evan Maddock <email address hidden>
* windowing, icon-tasklist: Implement adding and removing buttons when windows open and close
This sadly requires using Wnck/X11 specific APIs, and there really is no way around that unless we separate pinned launchers from running applications. But hey, it works!
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Fix button sizing
Signed-off-by: Evan Maddock <email address hidden>
* windowing: Fix tracking of active windows
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Implement scroll wheel handling for buttons
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Fix most of the styling with icon button popovers
Also fixes new window detection for the popover.
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Window indicator enhancements
- Move indicators away from the edge slightly
- Increase spacing for inactive window indicators
- Clean up and document (mostly) the code
The aim is to increase the indicator visibility. Before, the indicators were half off the screen, making them hard to see with certain themes.
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Hook up new window and close all buttons in popover
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Fix launch animation stopping immedietly
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Hook up pinning button functionality
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Implement icon reordering
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Reset button popover view on hide
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Make popover window control buttons start-aligned
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Dynamically create move to workspace buttons
Signed-off-by: Evan Maddock <email address hidden>
* windowing: Rebroadcast signals for workspace creation and deletion
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Popover cleanup
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Implement handling when a window becomes urgent
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Attempt to fix drag and drop for all scenarios
Spoiler: Doesn't work.
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Make indicator colors more like the old version
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Both dragging tasklist icons and desktop infos work now
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Fix launcher not being removed when unpinned
Signed-off-by: Evan Maddock <email address hidden>
* windowing/icon-tasklist: Correctly only show buttons on workspaces when
pref is set
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Cleanup
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Implement setting button tooltips
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Move button event handling to the main applet class
This will make it easier to implement the rest of the settings.
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Implement settings for launching apps
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Cleanup
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Hook up lock-icons setting
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Implement show all windows on click setting
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Remove unused files
Signed-off-by: Evan Maddock <email address hidden>
* windowing: Improve reliability of getting DesktopAppInfos for certain
applications
Signed-off-by: Evan Maddock <email address hidden>
* fix: do not have Budgie.Application be mandatory, rebase on new x4w
This should fix applications like Cinny and glxgears from not showing up in IconTasklist
* Apply suggestions from code review
Co-authored-by: Joshua Strobl <email address hidden>
* Apply suggestions from code review
Co-authored-by: Joshua Strobl <email address hidden>
* Apply suggestions from code review
Co-authored-by: Joshua Strobl <email address hidden>
* fix: compilation
* feat: implement budgie-app-(un)favorited vectors for use with ButtonPopover
* feat: clean up animations, change weird casing of widgets
* fix: remove extraneous TODO
* fix: left-align action button labels
* feat: implemented DESKTOP_IDS_TO_FORCE_WG_ICON to handle edge cases where we should not prefer app icon
* Revert "feat: implemented DESKTOP_IDS_TO_FORCE_WG_ICON to handle edge cases where we should not prefer app icon"
This reverts commit 32527edec91185e12e38265ca3c27f480b250d5b.
* windowing: Resolve remaining TODO items
Signed-off-by: Evan Maddock <email address hidden>
* icon-tasklist: Update tooltip for pin button based on pin status
Signed-off-by: Evan Maddock <email address hidden>
---------
Signed-off-by: Evan Maddock <email address hidden>
Co-authored-by: Joshua Strobl <email address hidden>
Co-authored-by: Joshua Strobl <email address hidden>