diff --git a/src/java/org/lwjgl/opengl/LinuxEvent.java b/src/java/org/lwjgl/opengl/LinuxEvent.java index 11e6a680..e713b0c1 100644 --- a/src/java/org/lwjgl/opengl/LinuxEvent.java +++ b/src/java/org/lwjgl/opengl/LinuxEvent.java @@ -149,7 +149,7 @@ final class LinuxEvent { public final long getKeyAddress() { return nGetKeyAddress(event_buffer); } - private static native int nGetKeyAddress(ByteBuffer event_buffer); + private static native long nGetKeyAddress(ByteBuffer event_buffer); public final long getKeyTime() { return nGetKeyTime(event_buffer); diff --git a/src/native/linux/org_lwjgl_opengl_LinuxEvent.c b/src/native/linux/org_lwjgl_opengl_LinuxEvent.c index e67f4043..2ab4b553 100644 --- a/src/native/linux/org_lwjgl_opengl_LinuxEvent.c +++ b/src/native/linux/org_lwjgl_opengl_LinuxEvent.c @@ -135,9 +135,10 @@ JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_LinuxEvent_nGetButtonY(JNIEnv *env, return event->xbutton.y; } -JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_LinuxEvent_nGetKeyAddress(JNIEnv *env, jclass unused, jobject event_buffer) { +JNIEXPORT jlong JNICALL Java_org_lwjgl_opengl_LinuxEvent_nGetKeyAddress(JNIEnv *env, jclass unused, jobject event_buffer) { XEvent *event = (XEvent *)(*env)->GetDirectBufferAddress(env, event_buffer); - return (jlong)(intptr_t)&(event->xkey); + XKeyEvent *key_event = &(event->xkey); + return (jlong)(intptr_t)key_event; } JNIEXPORT jint JNICALL Java_org_lwjgl_opengl_LinuxEvent_nGetKeyTime(JNIEnv *env, jclass unused, jobject event_buffer) {