Files
Frametop--frametop/scripts/test-handinput.sh
DeeJanuzandClaude Opus 5.5 9d6f5984a8 hands: near input on SteamVR's own panels through the pointer helper's laser
The dashboard, the Steam menu, Steam's keyboard and other apps' overlays now
take a poke or a pinch on the content as a click, and a pinch on the border,
like a card or at a corner moves or resizes a floating one. The edge and
corner glows show there too.

OpenVR gives no transform or size for dashboard panels, so ft-screens casts a
7x7 cone of rays from the eyes past each index tip and fits each panel to the
hits' texture coordinates (steampanels.cpp). Near input treats the fitted
panels as foreign: no fist grabs, two-hand stretch, throws, flicks, pushes,
rewinds or two-finger scroll.

ft-screens can't click those panels, so it drives the helper's laser with
"touch" lines (hover, press, move, up, grab, end). A move or resize first
hovers inside the edge and presses the grab bar or resize margin only once a
floating panel's window controls show under it; otherwise the log says why.
The helper keeps its overlay list while hands are allowed and sends it to
ft-screens ("steamvr ...").

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 19:47:25 -06:00

11 lines
717 B
Bash
Executable File

#!/usr/bin/env bash
# Near hand input and the hand matte, offline (screens/tests/handinput_test.cpp): the unit tests,
# then each publish dump given (ft-handreplay --publish-dump: recorded hands as ft-hands
# published them) against panels placed around the hands.
# scripts/test-handinput.sh [DUMP...]
set -euo pipefail
root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
dumps=$(printf ' %q' "$@")
"$root/scripts/frame.sh" -C screens "mkdir -p build && g++ -std=c++17 -O2 -Wall -Wextra -Wno-unused-parameter -Werror \
tests/handinput_test.cpp handcut.cpp handinput.cpp palmmenu.cpp grabthat.cpp steampanels.cpp -o build/handinput-test && build/handinput-test${dumps:+ && build/handinput-test --replay$dumps}"