Rewrite the MSAA/UIA integration into conhost (#19344)

Goal: Remove `CursorBlinker`.
Problem: Spooky action at a distance via `Cursor::HasMoved`.
Solution: Moved all the a11y event raising into `_stream.cpp` and pray
for the best.

Goal: Prevent node.js from tanking conhost performance via MSAA (WHY).
Problem: `ServiceLocator`.
Solution: Unserviced the locator. Debounced event raising. Performance
increased by >10x.
Problem 2: Lots of files changed.

This PR is a prerequisite for #19330

## Validation Steps Performed
Ran NVDA with and without UIA enabled and with different delays. 
This commit is contained in:
Leonard Hecker
2025-09-23 00:53:52 +02:00
committed by GitHub
parent e80aadd98b
commit 4600c4791b
78 changed files with 923 additions and 1023 deletions

View File

@@ -807,6 +807,7 @@ IMPEXP
inbox
inclusivity
INCONTEXT
INDEXID
INFOEX
inheritcursor
INITCOMMONCONTROLSEX
@@ -908,6 +909,7 @@ LNM
LOADONCALL
LOBYTE
localappdata
LOCATIONCHANGE
locsrc
Loewen
LOGBRUSH
@@ -1033,6 +1035,7 @@ MOUSEACTIVATE
MOUSEFIRST
MOUSEHWHEEL
MOVESTART
msaa
msb
msbuildcache
msctls
@@ -1973,8 +1976,8 @@ WRITECONSOLEINPUT
WRITECONSOLEOUTPUT
WRITECONSOLEOUTPUTSTRING
wrkstr
WRL
wrl
WRL
wrp
WRunoff
WSLENV