Skip to content

feat(types): map AnchoredTouch Win32 input method - #435

Draft
TsangAsuna wants to merge 1 commit into
MaaXYZ:mainfrom
TsangAsuna:pr9-anchored-touch
Draft

TsangAsuna wants to merge 1 commit into
MaaXYZ:mainfrom
TsangAsuna:pr9-anchored-touch

Conversation

@TsangAsuna

@TsangAsuna TsangAsuna commented Nov 8, 2026 •

Copy link
Copy Markdown

Status: preliminary implementation — the background input path is NOT fully verified end-to-end yet; expect follow-up iterations.

What

Add AnchoredTouch: 1n << 10n to Win32InputMethod and Win32InputMethodNames.
The maa-framework Rust crate (v1.27.0) already carries the bitflag
(ANCHORED_TOUCH = sys::MaaWin32InputMethod_AnchoredTouch), so interface.json entries
using "mouse": "AnchoredTouch" currently fall back to Seize with a warning.

AnchoredTouch injects synthetic WM_POINTER touch points: the cursor never moves, the
window is never raised, and occluded targets are temporarily made hit-testable at low
opacity — the only input method that satisfies "zero cursor seizure, zero window flicker".

Rollback

Revert this commit; the fallback-to-Seize behaviour returns.

Test environment

  • OS: Windows 10 (19045.6456) x64
  • Client: CN official launcher (Arknights: Endfield PC)
  • Display: 1920x1080, windowed (foreground baseline)
  • Controller baseline: Win32-Front (all fixes verified against upstream foreground path unless noted)

Sourcery 摘要

新功能:

  • 将 AnchoredTouch Win32 输入法添加到类型定义和名称映射中。
Original summary in English

Summary by Sourcery

New Features:

  • Add the AnchoredTouch Win32 input method to the type definitions and name mapping.

Add AnchoredTouch: 1n << 10n to Win32InputMethod and
Win32InputMethodNames. The maa-framework Rust crate (v1.27.0) already
carries the bitflag (ANCHORED_TOUCH =
sys::MaaWin32InputMethod_AnchoredTouch in common.rs), so interface.json
entries using "mouse": "AnchoredTouch" currently fall back to Seize
with a warning.

AnchoredTouch injects synthetic WM_POINTER touch points: the cursor never
moves, the window is never raised, and occluded targets are temporarily
made hit-testable at low opacity - the only input method that satisfies
zero cursor seizure and zero window flicker.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants