|
From: Elias N. <eli...@us...> - 2005-11-22 14:30:22
|
Update of /cvsroot/java-game-lib/LWJGL/src/native/linux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28193/src/native/linux Modified Files: org_lwjgl_input_Mouse.c org_lwjgl_opengl_Display.c Log Message: Linux: Ignore events from old windows Index: org_lwjgl_opengl_Display.c =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/linux/org_lwjgl_opengl_Display.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- org_lwjgl_opengl_Display.c 22 Nov 2005 13:53:13 -0000 1.41 +++ org_lwjgl_opengl_Display.c 22 Nov 2005 14:30:00 -0000 1.42 @@ -246,12 +246,13 @@ void handleMessages(JNIEnv *env, jint extension, jint window_mode, jobject saved_gamma, jobject current_gamma, jobject saved_mode, jobject current_mode) { XEvent event; -/* Window win; - int revert_mode;*/ while (XPending(getDisplay()) > 0) { XNextEvent(getDisplay(), &event); if (XFilterEvent(&event, None) == True) continue; + // Ignore events from old windows + if (event.xany.window != getCurrentWindow()) + continue; switch (event.type) { case ClientMessage: if (event.xclient.message_type == warp_atom) { @@ -259,16 +260,6 @@ } else if ((event.xclient.format == 32) && ((Atom)event.xclient.data.l[0] == delete_atom)) closerequested = true; break; -/* case FocusOut: - XGetInputFocus(getDisplay(), &win, &revert_mode); - if (win != current_win) { - releaseInput(); - focused = false; - } - break; - case FocusIn: - checkInput(); - break;*/ case MapNotify: dirty = true; minimized = false; Index: org_lwjgl_input_Mouse.c =================================================================== RCS file: /cvsroot/java-game-lib/LWJGL/src/native/linux/org_lwjgl_input_Mouse.c,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- org_lwjgl_input_Mouse.c 22 Nov 2005 11:06:21 -0000 1.41 +++ org_lwjgl_input_Mouse.c 22 Nov 2005 14:30:00 -0000 1.42 @@ -184,6 +184,7 @@ static void doWarpPointer(int center_x, int center_y) { XEvent warp_event; warp_event.type = ClientMessage; + warp_event.xclient.window = getCurrentWindow(); warp_event.xclient.message_type = getWarpAtom(); warp_event.xclient.format = 32; warp_event.xclient.data.l[0] = center_x; @@ -316,7 +317,7 @@ } void handlePointerMotion(XMotionEvent *event) { - doHandlePointerMotion(event->root, event->window, event->x_root, event->y_root, event->x, event->y); + doHandlePointerMotion(event->root, getCurrentWindow(), event->x_root, event->y_root, event->x, event->y); } JNIEXPORT void JNICALL Java_org_lwjgl_opengl_LinuxDisplay_nPollMouse(JNIEnv * env, jclass clazz, jobject coord_buffer_obj, jobject button_buffer_obj) { |