Files
orca/tests
Jinjingandalpenshtokk 7fa2c6e075 fix(tab-group): keep split dividers draggable beside a browser group (#41335)
* 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>
2026-11-12 16:17:56 -08:00
..