blender/intern/wayland_dynload
Campbell Barton 7032b78578 UI: replace LIBDECOR with client side decorations (CSD) for Wayland
Initial implementation of client side decorations (CSD) as a replacement
for LibDecor integration.
The main focus is for basic functionality, drawing is fairly simple.

The implementation supports:

- Wayland (only).
- Hi-DPI & fractional scaling.
- Mouse, tablet & touch input.
- Blender windows and the animation player.

Event handling:

- Right click on the title-bar to show the menu.
- Double-click on the title-bar to maximize.

Details:

- Events on the decorations still generate GHOST events,
  in practice they don't map to a area/region and are only handled
  as decorations.
- Events are ignored by the decorations when the cursor is grabbed.
- Existing icons are used for buttons were a close match from the
  existing icons, we may want to add icons for better control over
  the buttons look.
- The animation player uses CSD as an overlay, showing the decorations
  on hover over the upper part of the window.

Resolves: #144919, #108308, #107797.

See design task #113795.

Ref !148350
2025-12-10 10:50:56 +11:00
..
extern UI: replace LIBDECOR with client side decorations (CSD) for Wayland 2025-12-10 10:50:56 +11:00
intern UI: replace LIBDECOR with client side decorations (CSD) for Wayland 2025-12-10 10:50:56 +11:00
CMakeLists.txt UI: replace LIBDECOR with client side decorations (CSD) for Wayland 2025-12-10 10:50:56 +11:00