Fix cursor jumping after Mouse.setGrabbed()
This commit is contained in:
parent
c8d5fe296b
commit
0b9d221f9c
|
@ -214,7 +214,7 @@ public class Mouse {
|
||||||
height = Display.getDisplayMode().getHeight();
|
height = Display.getDisplayMode().getHeight();
|
||||||
x = width / 2;
|
x = width / 2;
|
||||||
y = height / 2;
|
y = height / 2;
|
||||||
readBuffer.clear();
|
readBuffer.position(readBuffer.limit());
|
||||||
if (!isGrabbed() && (Cursor.getCapabilities() & Cursor.CURSOR_ONE_BIT_TRANSPARENCY) != 0)
|
if (!isGrabbed() && (Cursor.getCapabilities() & Cursor.CURSOR_ONE_BIT_TRANSPARENCY) != 0)
|
||||||
setCursorPosition(x, y);
|
setCursorPosition(x, y);
|
||||||
}
|
}
|
||||||
|
|
|
@ -201,6 +201,7 @@ JNIEXPORT void JNICALL Java_org_lwjgl_opengl_LinuxDisplay_nSetNativeCursor(JNIEn
|
||||||
|
|
||||||
static void reset(void) {
|
static void reset(void) {
|
||||||
initEventQueue(&event_queue, EVENT_SIZE);
|
initEventQueue(&event_queue, EVENT_SIZE);
|
||||||
|
accum_dx = accum_dy = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
JNIEXPORT void JNICALL Java_org_lwjgl_opengl_LinuxDisplay_nCreateMouse
|
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);
|
setGrab(new_grab == JNI_TRUE ? true : false);
|
||||||
reset();
|
reset();
|
||||||
accum_dx = accum_dy = 0;
|
|
||||||
XQueryPointer(getDisplay(), getCurrentWindow(), &root_return, &child_return, &root_x, &root_y, &win_x, &win_y, &mask_return);
|
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);
|
doHandlePointerMotion(root_x, root_y, win_x, win_y);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue