From e1a63721f1ba54c64ed3b8bc93ccdf139bbbd8e9 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Tue, 12 Apr 2005 12:04:36 +0000 Subject: [PATCH] Win32: Implemented Mouse.setCursorPosition() --- src/native/win32/org_lwjgl_input_Mouse.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/native/win32/org_lwjgl_input_Mouse.c b/src/native/win32/org_lwjgl_input_Mouse.c index f6f2afd7..ea4ec5be 100644 --- a/src/native/win32/org_lwjgl_input_Mouse.c +++ b/src/native/win32/org_lwjgl_input_Mouse.c @@ -352,6 +352,20 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Win32Display_pollMouse(JNIEnv * env UpdateMouseFields(env, coord_buffer_obj, button_buffer_obj); } +JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Win32Display_setCursorPosition +(JNIEnv * env, jobject self, jint x, jint y) { + int transformed_x, transformed_y; + RECT window_rect; + if (!GetWindowRect(getCurrentHWND(), &window_rect)) { + printfDebugJava(env, "GetWindowRect failed"); + return; + } + transformed_x = window_rect.left + x; + transformed_y = window_rect.bottom - y; + if (!SetCursorPos(transformed_x, transformed_y)) + printfDebugJava(env, "SetCursorPos failed"); +} + JNIEXPORT void JNICALL Java_org_lwjgl_opengl_Win32Display_grabMouse (JNIEnv * env, jobject self, jboolean grab) { HRESULT di_res;