feat(pointer): virtio tablet as 2nd input dev (driver per-instance VAs, abs/btn decode), input server serves 2 devices on one notif; display software cursor, bar click switches window, presses/releases to front window in its px; k-ui hit-tests (press focuses, release on same presses, field only focuses)
This commit is contained in:
12
docs/ipc.md
12
docs/ipc.md
@@ -219,6 +219,18 @@ app cannot pick its own); the theme that window reads carries it, its
|
||||
lightness moved until it passes contrast (`theme::with_accent`), or the
|
||||
theme's own accent if it cannot, is black or white, or looks destructive.
|
||||
|
||||
The pointer (QEMU's `virtio-tablet-device`, the second virtio input
|
||||
device, which init hands the input server after the keyboard) is the
|
||||
display's as well. The input server reports positions as fractions of
|
||||
the screen (`types::input::event`, `POINTER_*`, `x | y << 16` in 0 to
|
||||
65535); the display draws the cursor itself over everything (a sprite,
|
||||
redrawing what it hid as it moves), brings a window forward when its
|
||||
name on the bar is pressed, and passes presses and releases below the
|
||||
bar to the window in front, in that window's pixels. Moves are not
|
||||
passed on. K-UI hit-tests them against what it last drew: a press
|
||||
focuses the thing under it, letting go over the same thing presses it
|
||||
(a field is only focused).
|
||||
|
||||
Input reaches apps through the display server, the input server's only
|
||||
client. It subscribes to the input server with a notification, drains it
|
||||
when signalled, keeps F1, and queues the rest for the window in front,
|
||||
|
||||
Reference in New Issue
Block a user