From c8e6664a8d513e3347ade70a131520ee97e91080 Mon Sep 17 00:00:00 2001 From: Unrud Date: Sun, 21 May 2023 00:51:07 +0200 Subject: [PATCH] Fix Windows controller Partially revert 1794150285ab5f661379a6470bb4dd5309d0fff5 Fixes #58 --- inputcontrol/controller_windows.go | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/inputcontrol/controller_windows.go b/inputcontrol/controller_windows.go index ad0b283..58b5e9a 100644 --- a/inputcontrol/controller_windows.go +++ b/inputcontrol/controller_windows.go @@ -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 }