|
From: <eli...@us...> - 2007-01-31 14:07:21
|
Revision: 2735
http://svn.sourceforge.net/java-game-lib/?rev=2735&view=rev
Author: elias_naur
Date: 2007-01-31 06:07:20 -0800 (Wed, 31 Jan 2007)
Log Message:
-----------
Linux: Make sure the first Mouse.poll() return correct absolute X and Y values
Modified Paths:
--------------
trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxMouse.java
Modified: trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxMouse.java
===================================================================
--- trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxMouse.java 2007-01-30 13:08:51 UTC (rev 2734)
+++ trunk/LWJGL/src/java/org/lwjgl/opengl/LinuxMouse.java 2007-01-31 14:07:20 UTC (rev 2735)
@@ -83,12 +83,22 @@
this.window = window;
this.input_window = input_window;
this.warp_atom = LinuxDisplay.nInternAtom(display, "_LWJGL", false);
- reset();
+ reset(false, false);
}
- private void reset() {
+ private void reset(boolean grab, boolean warp_pointer) {
event_queue = new EventQueue(event_buffer.capacity());
accum_dx = accum_dy = 0;
+ long root_window = nQueryPointer(display, window, query_pointer_buffer);
+
+ int root_x = query_pointer_buffer.get(0);
+ int root_y = query_pointer_buffer.get(1);
+ int win_x = query_pointer_buffer.get(2);
+ int win_y = query_pointer_buffer.get(3);
+ // Pretend that the cursor never moved
+ last_x = win_x;
+ last_y = transformY(win_y);
+ doHandlePointerMotion(grab, warp_pointer, root_window, root_x, root_y, win_x, win_y, last_event_nanos);
}
public void read(ByteBuffer buffer) {
@@ -171,17 +181,7 @@
}
public void changeGrabbed(boolean grab, boolean warp_pointer) {
- reset();
- long root_window = nQueryPointer(display, window, query_pointer_buffer);
-
- int root_x = query_pointer_buffer.get(0);
- int root_y = query_pointer_buffer.get(1);
- int win_x = query_pointer_buffer.get(2);
- int win_y = query_pointer_buffer.get(3);
- // Pretend that the cursor never moved
- last_x = win_x;
- last_y = transformY(win_y);
- doHandlePointerMotion(grab, warp_pointer, root_window, root_x, root_y, win_x, win_y, last_event_nanos);
+ reset(grab, warp_pointer);
}
public int getButtonCount() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|