Fix Windows controller

Partially revert 1794150285
Fixes #58
This commit is contained in:
Unrud 2023-05-21 00:51:07 +02:00
parent 1803577892
commit c8e6664a8d

View file

@ -111,9 +111,11 @@ func (p *windowsController) sendInput(inputs []keybdInput) error {
if len(inputs) == 0 {
return nil
}
_, _, err := sendInputProc.Call(uintptr(len(inputs)),
uintptr(unsafe.Pointer(&inputs[0])), unsafe.Sizeof(inputs[0]))
return err
if sent, _, err := sendInputProc.Call(uintptr(len(inputs)),
uintptr(unsafe.Pointer(&inputs[0])), unsafe.Sizeof(inputs[0])); int(sent) != len(inputs) {
return err
}
return nil
}
func (p *windowsController) KeyboardText(text string) error {
@ -194,8 +196,11 @@ func (p *windowsController) PointerButton(button PointerButton, press bool) erro
} else {
return fmt.Errorf("unsupported pointer button: %#v", button)
}
_, _, err := sendInputProc.Call(1, uintptr(unsafe.Pointer(&input)), unsafe.Sizeof(input))
return err
if sent, _, err := sendInputProc.Call(1, uintptr(unsafe.Pointer(&input)),
unsafe.Sizeof(input)); int(sent) != 1 {
return err
}
return nil
}
func (p *windowsController) PointerMove(deltaX, deltaY int) error {
@ -205,8 +210,11 @@ func (p *windowsController) PointerMove(deltaX, deltaY int) error {
dy: int32(deltaY),
dwFlags: mouseeventfMove,
}
_, _, err := sendInputProc.Call(1, uintptr(unsafe.Pointer(&input)), unsafe.Sizeof(input))
return err
if sent, _, err := sendInputProc.Call(1, uintptr(unsafe.Pointer(&input)),
unsafe.Sizeof(input)); int(sent) != 1 {
return err
}
return nil
}
func (p *windowsController) PointerScroll(deltaHorizontal, deltaVertical int, finish bool) error {
@ -228,7 +236,9 @@ func (p *windowsController) PointerScroll(deltaHorizontal, deltaVertical int, fi
if len(inputs) == 0 {
return nil
}
_, _, err := sendInputProc.Call(uintptr(len(inputs)),
uintptr(unsafe.Pointer(&inputs[0])), unsafe.Sizeof(inputs[0]))
return err
if sent, _, err := sendInputProc.Call(uintptr(len(inputs)),
uintptr(unsafe.Pointer(&inputs[0])), unsafe.Sizeof(inputs[0])); int(sent) != len(inputs) {
return err
}
return nil
}