7c0928d84e
The firmware now fires on_touch_move with a 2px noise threshold; gesture intent is the toolkit's 8px slop, since a painting app's stroke starts at the first real pixel. Past the slop, Screen:move hands the drag to the nearest scroll ancestor and cancels the widget under the finger. ui.scroll leans on the app viewport for clipping, so it must reach both panel edges. Paint and Scroll demo both halves of the gesture split.