mirror of
https://github.com/stablyai/orca.git
synced 2026-11-13 17:37:40 +00:00
* fix(tab-group): track divider drags by pointer and keep guests click-through When a divider drag's first move lands on a browser page, the guest's process takes that event and every later one, so pointer capture never activates and the divider stays stuck in is-dragging. Hold webview drag passthrough for the whole gesture, as the pane-divider, tab and DevTools dock drags already do. Linux Chromium can report hasPointerCapture() false while moves still arrive (#34287), so own the gesture by pointerId with window-level listeners, and end it on a buttonless move when the release was missed. Drawn from #35919 by alpenshtokk. Co-authored-by: alpenshtokk <wawesandways@gmail.com> * fix(tab-group): keep split dividers grabbable beside a narrow browser group A squeezed browser toolbar overflowed its overlay slot and sat on top of the divider to its right, so presses in the toolbar row never reached the handle. Clip the overlay slot to its group like other retained pane hosts. Adds a real-mouse e2e for a narrow terminal | browser | terminal row: the divider must be uncovered along its whole height, follow a drag whose first move lands on the page, and accept the next drag afterwards. * fix(tab-group): end a lost divider drag on blur, hide or re-press A release outside the window could be missed with no buttonless move to end the gesture, leaving guest passthrough held and letting a later pressed move resume the old drag. End the gesture when the window blurs or is hidden, and let a new press of the same pointer replace a gesture whose release was missed. Covers release outside the window, Linux false capture, multiple guest surfaces and unmount mid-drag. Co-authored-by: alpenshtokk <wawesandways@gmail.com> * fix(tab-group): end a lost divider drag on the next press anywhere Divider moves are tracked on window, but the same-pointer recovery only ran when the next press landed on the stale handle itself. A press on another divider or on pane content let later pressed moves resume the old drag, and with two dividers both followed the new gesture. Listen for the active pointer's next pointerdown on window in the capture phase and end the stale gesture before anything handles the press. * fix(browser): clip the narrow browser toolbar without making it scrollable overflow-hidden still made the browser overlay slot a scroll container, so tabbing to a toolbar control clipped in a narrow group scrolled the toolbar and page sideways with no way back. overflow-clip clips the same way without a scroll position. --------- Co-authored-by: alpenshtokk <wawesandways@gmail.com>