Mac OS X: Fix bogus repeated mouse deltas when grabbed
This commit is contained in:
parent
282ac78fc1
commit
4d0a4ac6fc
|
@ -211,7 +211,6 @@ final class MacOSXDisplay implements DisplayImplementation {
|
||||||
GL11.glViewport(0, 0, frame.getCanvas().syncGetWidth(), frame.getCanvas().syncGetHeight());
|
GL11.glViewport(0, 0, frame.getCanvas().syncGetWidth(), frame.getCanvas().syncGetHeight());
|
||||||
warpCursor();
|
warpCursor();
|
||||||
}
|
}
|
||||||
mouse_queue.updateDeltas();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void warpCursor() {
|
private void warpCursor() {
|
||||||
|
|
|
@ -185,7 +185,6 @@ final class MouseEventQueue extends EventQueue implements MouseListener, MouseMo
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mousePressed(MouseEvent e) {
|
public void mousePressed(MouseEvent e) {
|
||||||
updateDeltas();
|
|
||||||
handleButton(e);
|
handleButton(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -195,16 +194,23 @@ final class MouseEventQueue extends EventQueue implements MouseListener, MouseMo
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mouseReleased(MouseEvent e) {
|
public void mouseReleased(MouseEvent e) {
|
||||||
updateDeltas();
|
|
||||||
handleButton(e);
|
handleButton(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void handleMotion(MouseEvent e) {
|
||||||
|
if (grabbed) {
|
||||||
|
updateDeltas();
|
||||||
|
} else {
|
||||||
|
setCursorPos(e.getX(), e.getY());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void mouseDragged(MouseEvent e) {
|
public void mouseDragged(MouseEvent e) {
|
||||||
setCursorPos(e.getX(), e.getY());
|
handleMotion(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void mouseMoved(MouseEvent e) {
|
public void mouseMoved(MouseEvent e) {
|
||||||
setCursorPos(e.getX(), e.getY());
|
handleMotion(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
private synchronized void handleWheel(int amount) {
|
private synchronized void handleWheel(int amount) {
|
||||||
|
@ -212,7 +218,7 @@ final class MouseEventQueue extends EventQueue implements MouseListener, MouseMo
|
||||||
putMouseEvent(-1, 0, amount);
|
putMouseEvent(-1, 0, amount);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateDeltas() {
|
private void updateDeltas() {
|
||||||
if (!grabbed)
|
if (!grabbed)
|
||||||
return;
|
return;
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
|
@ -229,7 +235,6 @@ final class MouseEventQueue extends EventQueue implements MouseListener, MouseMo
|
||||||
|
|
||||||
public void mouseWheelMoved(MouseWheelEvent e) {
|
public void mouseWheelMoved(MouseWheelEvent e) {
|
||||||
int wheel_amount = -e.getWheelRotation()*WHEEL_SCALE;
|
int wheel_amount = -e.getWheelRotation()*WHEEL_SCALE;
|
||||||
updateDeltas();
|
|
||||||
handleWheel(wheel_amount);
|
handleWheel(wheel_amount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue