Mouse: Allow delta queries when not grabbed.
This commit is contained in:
parent
d67949edb2
commit
b12ac2c44c
|
@ -293,6 +293,8 @@ public class Mouse {
|
||||||
x += poll_coord1;
|
x += poll_coord1;
|
||||||
y += poll_coord2;
|
y += poll_coord2;
|
||||||
} else {
|
} else {
|
||||||
|
dx = poll_coord1 - x;
|
||||||
|
dy = poll_coord2 - y;
|
||||||
x = poll_coord1;
|
x = poll_coord1;
|
||||||
y = poll_coord2;
|
y = poll_coord2;
|
||||||
}
|
}
|
||||||
|
@ -367,8 +369,12 @@ public class Mouse {
|
||||||
event_x += event_dx;
|
event_x += event_dx;
|
||||||
event_y += event_dy;
|
event_y += event_dy;
|
||||||
} else {
|
} else {
|
||||||
event_x = readBuffer.get();
|
int new_event_x = readBuffer.get();
|
||||||
event_y = readBuffer.get();
|
int new_event_y = readBuffer.get();
|
||||||
|
event_dx = new_event_x - event_x;
|
||||||
|
event_dy = new_event_y - event_y;
|
||||||
|
event_x = new_event_x;
|
||||||
|
event_y = new_event_y;
|
||||||
}
|
}
|
||||||
event_x = Math.min(Display.getDisplayMode().getWidth() - 1, Math.max(0, event_x));
|
event_x = Math.min(Display.getDisplayMode().getWidth() - 1, Math.max(0, event_x));
|
||||||
event_y = Math.min(Display.getDisplayMode().getHeight() - 1, Math.max(0, event_y));
|
event_y = Math.min(Display.getDisplayMode().getHeight() - 1, Math.max(0, event_y));
|
||||||
|
@ -400,8 +406,6 @@ public class Mouse {
|
||||||
* @return Current events delta x. Only valid when the mouse is grabbed.
|
* @return Current events delta x. Only valid when the mouse is grabbed.
|
||||||
*/
|
*/
|
||||||
public static int getEventDX() {
|
public static int getEventDX() {
|
||||||
if (!isGrabbed())
|
|
||||||
throw new IllegalStateException("X, Y deltas are only available when the mouse is grabbed. Use getEventX()/getEventY() instead.");
|
|
||||||
return event_dx;
|
return event_dx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -409,8 +413,6 @@ public class Mouse {
|
||||||
* @return Current events delta y. Only valid when the mouse is grabbed.
|
* @return Current events delta y. Only valid when the mouse is grabbed.
|
||||||
*/
|
*/
|
||||||
public static int getEventDY() {
|
public static int getEventDY() {
|
||||||
if (!isGrabbed())
|
|
||||||
throw new IllegalStateException("X, Y deltas are only available when the mouse is grabbed. Use getEventX()/getEventY() instead.");
|
|
||||||
return event_dy;
|
return event_dy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -459,8 +461,6 @@ public class Mouse {
|
||||||
* @return Movement on the x axis since last time getDX() was called. Only valid when the mouse is grabbed.
|
* @return Movement on the x axis since last time getDX() was called. Only valid when the mouse is grabbed.
|
||||||
*/
|
*/
|
||||||
public static int getDX() {
|
public static int getDX() {
|
||||||
if (!isGrabbed())
|
|
||||||
throw new IllegalStateException("X, Y deltas are only available when the mouse is grabbed. Use getEventX()/getEventY() instead.");
|
|
||||||
int result = dx;
|
int result = dx;
|
||||||
dx = 0;
|
dx = 0;
|
||||||
return result;
|
return result;
|
||||||
|
@ -470,8 +470,6 @@ public class Mouse {
|
||||||
* @return Movement on the y axis since last time getDY() was called. Only valid when the mouse is grabbed.
|
* @return Movement on the y axis since last time getDY() was called. Only valid when the mouse is grabbed.
|
||||||
*/
|
*/
|
||||||
public static int getDY() {
|
public static int getDY() {
|
||||||
if (!isGrabbed())
|
|
||||||
throw new IllegalStateException("X, Y deltas are only available when the mouse is grabbed. Use getEventX()/getEventY() instead.");
|
|
||||||
int result = dy;
|
int result = dy;
|
||||||
dy = 0;
|
dy = 0;
|
||||||
return result;
|
return result;
|
||||||
|
|
Loading…
Reference in New Issue