summaryrefslogtreecommitdiff
path: root/src/x11/window.c
AgeCommit message (Collapse)Author
12 daysrename and simplificationBerke Güzel
12 daysfeat(x11): implement interactive resize, window menu, IME caret/preedit, and ↵Berke Güzel
advertise YASL_CAP_CSD
12 daysbetter public interface and doxygenBerke Güzel
13 daysx11: chunk selection paste property reads and guard against INCR transfersBerke Güzel
13 daysx11: optimize rendering, event loop, cursors, and multiscreen handlingBerke Güzel
- Implement MIT-SHM shared memory zero-copy presentation fallback - Install global XSetErrorHandler to suppress fatal BadWindow/BadDrawable crashes - Avoid event starvation by flushing and checking XEventsQueued in dispatch_timeout - Cache standard and hidden X11 cursors across pointer motion - Clamp popups to active monitor bounds via XRandR (XRRGetMonitors) - Fast-path DnD surface lookup via in-process surface tree - Modernize keycode resolution with XKB and ignore Lock/Mod2 mask state
13 daysperf: unify platform-independent state, branchless queue masking and native ↵Berke Güzel
handle caching
13 daysperf: optimize hot-path loops, data structures, and cache localityBerke Güzel
13 daysfeat: implement X11 and Cocoa drop-targets, popups, and selection gapsBerke Güzel
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
13 daysfeat: add type-safe native platform headers and portable drag supportBerke Güzel
- 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.
13 dayscursor hidden and tablet supportBerke Güzel
13 daysrefactor: simplify public API and isolate native extensionsBerke Güzel
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.
13 daysfeat: add SDL3-style surface, display, and loop timer API for X11, Wayland, ↵Berke Güzel
and Cocoa
13 daysmissing impls and hardeningBerke Güzel
13 daysMerge branch 'backend-selection' into mainBerke Güzel
- 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
13 daysfeat: backend selection (Wayland, X11, Cocoa)Berke Güzel