diff --git a/src/java/org/lwjgl/input/Mouse.java b/src/java/org/lwjgl/input/Mouse.java index 21b519c6..b053b6ad 100644 --- a/src/java/org/lwjgl/input/Mouse.java +++ b/src/java/org/lwjgl/input/Mouse.java @@ -214,9 +214,9 @@ public class Mouse { height = Display.getDisplayMode().getHeight(); x = width / 2; y = height / 2; - readBuffer.clear(); + readBuffer.position(readBuffer.limit()); if (!isGrabbed() && (Cursor.getCapabilities() & Cursor.CURSOR_ONE_BIT_TRANSPARENCY) != 0) - setCursorPosition(x, y); + setCursorPosition(x, y); } /** diff --git a/src/native/linux/org_lwjgl_input_Mouse.c b/src/native/linux/org_lwjgl_input_Mouse.c index d6a722ff..38c49ea6 100644 --- a/src/native/linux/org_lwjgl_input_Mouse.c +++ b/src/native/linux/org_lwjgl_input_Mouse.c @@ -201,6 +201,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_LinuxDisplay_nSetNativeCursor(JNIEn static void reset(void) { initEventQueue(&event_queue, EVENT_SIZE); + accum_dx = accum_dy = 0; } JNIEXPORT void JNICALL Java_org_lwjgl_opengl_LinuxDisplay_nCreateMouse @@ -360,7 +361,6 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_LinuxDisplay_nGrabMouse(JNIEnv * en setGrab(new_grab == JNI_TRUE ? true : false); reset(); - accum_dx = accum_dy = 0; XQueryPointer(getDisplay(), getCurrentWindow(), &root_return, &child_return, &root_x, &root_y, &win_x, &win_y, &mask_return); doHandlePointerMotion(root_x, root_y, win_x, win_y); }