/** the y-position of the mouse the last time a Press message was enqueued */
int last_press_y = Integer.MAX_VALUE;
+ /** the last button to recieve a Click message; used for simulating DoubleClick's */
+ static int lastClickButton = 0;
+
+ /** the last time a Click message was processed; used for simulating DoubleClick's */
+ static long lastClickTime = 0;
+
// Methods to be overridden by subclasses ///////////////////////////////////////////////////////
if (button == 1) new SimpleMessage("Click1", Boolean.TRUE, root.whoIs(mousex, mousey));
else if (button == 2) new SimpleMessage("Click2", Boolean.TRUE, root.whoIs(mousex, mousey));
else if (button == 3) new SimpleMessage("Click3", Boolean.TRUE, root.whoIs(mousex, mousey));
+ if (Platform.needsAutoDoubleClick()) {
+ long now = System.currentTimeMillis();
+ if (lastClickButton == button && now - lastClickTime < 350) DoubleClick(button);
+ lastClickButton = button;
+ lastClickTime = now;
+ }
}
protected final void DoubleClick(int button) {
}
// FEATURE: reinstate recycler
- private class SimpleMessage implements Message {
+ public class SimpleMessage implements Message {
private Box boxContainingMouse;
private Object value;
- private String name;
+ public String name;
SimpleMessage(String name, Object value, Box boxContainingMouse) {
this.boxContainingMouse = boxContainingMouse;