## Link to GitHub Issue or related Pull Request, if one exists
Fixes#840
## Description of change
Currently, for subscreen games, mouse events are still delivered even
when the subscreen overlay window is not visible.
Change this so that the subscreen overlay must be active and under the
mouse cursor for the mouse-to-touch transformation to occur. Applies to
both native and wintouchemu.
## Testing
Needs to test everything again..
iidx:
- [ ] full screen with overlay
- [ ] single window with overlay
- [ ] two window
Test: mouse, poke, api, real touch screen
sdvx:
- [ ] full screen with overlay
- [ ] windowed
popn
- [x] full screen with overlay
- [x] window with overlay
- [x] dedicated window
gitadora
- [x] single window with overlay
- [x] dedicated sub window
nostalgia
- [x] fullscreen
- [x] windowed
test: poke
wintouchemu
- [ ] Do all of the above again with wintouchemu
## Link to GitHub Issue or related Pull Request, if one exists
Part 1 of many fixes for #814.
## Description of change
For the native touch hook - add code to inject synthetic touches using
Windows API (`InjectTouchInput`).
Note that this is Windows 8+ only, but we can make an assumption that we
are running on Win10+ for these games (TDJ/UFC/High Cheers) since the
cabs assume Win10.
Detect mouse events and allow IIDX poke to call into this to inject
synthetic touches.
Also, update the nativetouchhook to independently calculate window size
and rotation, instead of relying on rawinput layer.
## Testing
Tested to work with native touch option on IIDX, SDVX, POPN, all full
screen / windowed / sub on/off combinations.
Edge cases:
* sdvx main monitor rotated 270 deg
* touch invert option
* windowed mode resize / moved
All seem to work.