diff options
| author | Adam Malczewski <[email protected]> | 2026-06-14 12:20:36 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-14 12:20:36 +0900 |
| commit | 18bcca4f820aca68c6f50c4d59b66d73f0d0970d (patch) | |
| tree | 4832214e3e5af8f50c3c0056b8897c134ac95029 /packages/kernel/src/kernel.cpp | |
| parent | a044b44c936569db7e790546b81b4792c8e72058 (diff) | |
| download | unbox-18bcca4f820aca68c6f50c4d59b66d73f0d0970d.tar.gz unbox-18bcca4f820aca68c6f50c4d59b66d73f0d0970d.zip | |
ext-stage-dock: interactive touch edge-swipe to open/close the dock
Drag from the left edge to open, or drag the open dock back to close;
finger-following with a 50%-or-fling snap on release. New gesture::Controller
pure core converges both input paths onto one RevealRecognizer: OPEN via the
kernel touch bus (dock hidden at down), CLOSE via UiSurface::bind_drag (the
visible dock captures the touch). Slide is value-driven (data-style-transform)
and eased only when not dragging.
Two real-seat fixes found via per-frame logging:
- Flicker: RmlUi projects a drag event's coords into the DRAGGED element's
transformed frame. We had drag:drag on the same <body> we translate by
slide, so the reported x fed back into slide and ping-ponged every frame.
Fix: body is a stationary drag handle; an inner .panel carries the transform.
- Direction: drag_start now seeds the recognizer from the dock's current
fraction (1 + slide/width) instead of a hardcoded value, so a drag opens or
closes correctly from any state.
Diffstat (limited to 'packages/kernel/src/kernel.cpp')
0 files changed, 0 insertions, 0 deletions
