Files
orca/native/computer-use-linux
Kelvin Amoaba 1f56231043 fix(computer-use): keep Linux actions in the background and refuse ones that need the foreground (#42157)
* fix(computer-use): keep Linux actions in the background unless the user allows a raise

Pointer fallbacks, scroll and drag no longer raise the target window and
warp the pointer without --restore-window; they refuse with
background_unavailable before sending anything. With the flag, the
target point is validated before the raise, a window on another
workspace is refused instead of switching the user's view, and the
pointer is put back afterwards.

Also refuse background clicks that open menus, keyboard-grabbing popups
or dialogs (ported from agent-desktop's foreground classifier), refuse
synthetic input on Wayland where it never lands, press Return through a
GTK entry's activate action, re-check focus and held modifiers while
typing, and report action.delivery from what happened.

* fix(computer-use): check the workspace before every Linux raise and release held buttons

Run the other-workspace check before GrabFocus too, raise before a
user-approved menu or dialog opener, validate a pointer target before
asking for the flag, count newly active app windows as foreground,
release synthetic buttons when input is interrupted, and stop typing
without an exception exit so the user's held keys are left alone.

* fix(computer-use): keep held modifiers from other X screens and settle remapped keys on early stop

* fix(computer-use): refuse a Linux raise when the target's workspace can't be read
2026-11-13 23:23:34 +00:00
..