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) {
|