| Age | Commit message (Collapse) | Author |
|
|
|
Resolve gaps identified in yasl-gaps-report.md:
- X11:
- Add XDND v5 file drop support and text/uri-list parsing (YASL_INPUT_DROP_FILES)
- Dispatch surface drop-target events (YASL_DRAG_OVER, YASL_DRAG_LEAVE, YASL_DRAG_DROP, YASL_DROP_OVER, YASL_DROP_LEAVE)
- Implement override-redirect popups (surface_create_popup, surface_popup_reposition)
- Support drag images with override-redirect icon window
- Set YASL_CAP_POPUPS capability
- Handle XIHierarchyChanged reset cleanly
- Cocoa:
- Dispatch surface drop-target events for internal drags and external NSDraggingDestination
- Implement child window popups (cocoa_surface_create_popup, cocoa_surface_popup_reposition)
- Implement primary selection via dedicated pasteboard
- Support drag images with floating borderless NSWindow
- Track pointer buttons and push YASL_INPUT_RESET on focus loss
- Set YASL_CAP_POPUPS and YASL_CAP_PRIMARY_SELECTION capabilities
- Tests:
- Add comprehensive unit test suite in tests/x11/test_tablet.c
|
|
- Add include/yasl/native/{wayland,cocoa,x11}.h with type-safe handle accessors.
- Unify drag-and-drop and window carry support across Wayland, X11, and Cocoa.
- Preserve full ABI compatibility for capability flags.
- Install native headers conditionally based on enabled backend.
- Include missing tablet example and backend test suites.
|
|
|
|
Separate loop/timer and native interoperability APIs from the portable surface header. Unify dispatch, geometry queries, and timer callbacks; keep framebuffer bookkeeping and frame clocks private, and hide implementation symbols.
Update backends, documentation, examples, and API/integration coverage. Verify exports, strict C/C++ installed consumers, and normal plus ASan/UBSan suites.
|
|
and Cocoa
|
|
|
|
- Implement runtime backend selection (Wayland, X11, Cocoa)
- Add native X11 backend with clipboard, keyboard, mouse, and placement
- Integrate multi-backend integration tests running under Weston and Xwayland
- Retain zero-hole struct packing, branchless ALU/LUT primitives, and paced event loop
|
|
|
|
- Hook up Cocoa tablet, stylus, and Force Touch pressure/tilt to push_pointer
- Ensure Wayland tablet tool pressure resets cleanly on tool up
- Visualize pressure-sensitive brush scaling and telemetry in simple_window
|
|
- Fix Wayland event loop lockout by properly decoupling read arming and adding poll-backed dispatching
- Support standalone display lifecycle without requiring caller to manage a loop
- Eliminate alignment holes across yasl_surface, yasl_display, seat, touch_point, and conn_drag using pahole
- Replace branching state/button decoders with compile-time locked LUTs and branchless bitwise operations
- Accelerate UTF-8 validation with 64-bit word scanning for ASCII runs
|
|
A minimal, modern desktop window surface library in C.
Supports Wayland on Linux and Cocoa/Metal on macOS with
presentation timing, fractional scaling, IME, and CSD.
|