projects
/
sixth-3d.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Optimized frame repainting. Fixed mouse click processing.
[sixth-3d.git]
/
src
/
main
/
java
/
eu
/
svjatoslav
/
sixth
/
e3d
/
gui
/
humaninput
/
HIDInputTracker.java
diff --git
a/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/HIDInputTracker.java
b/src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/HIDInputTracker.java
index
6015ee7
..
5bf7927
100755
(executable)
--- a/
src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/HIDInputTracker.java
+++ b/
src/main/java/eu/svjatoslav/sixth/e3d/gui/humaninput/HIDInputTracker.java
@@
-33,7
+33,7
@@
public class HIDInputTracker implements
* </pre>
*/
private final Map<Integer, Long> pressedKeysToPressedTimeMap = new HashMap<>();
* </pre>
*/
private final Map<Integer, Long> pressedKeysToPressedTimeMap = new HashMap<>();
- private final List<Mouse
Click> detectedMouseClick
s = new ArrayList<>();
+ private final List<Mouse
Event> detectedMouseEvent
s = new ArrayList<>();
private final List<KeyEvent> detectedKeyEvents = new ArrayList<>();
private int wheelMovedDirection = 0;
private Point2D mouseDraggedDirection = new Point2D();
private final List<KeyEvent> detectedKeyEvents = new ArrayList<>();
private int wheelMovedDirection = 0;
private Point2D mouseDraggedDirection = new Point2D();
@@
-117,34
+117,41
@@
public class HIDInputTracker implements
* @return <code>true</code> if view needs to be repainted.
*/
private synchronized boolean handleMouseClicksAndHover(final ViewPanel viewPanel) {
* @return <code>true</code> if view needs to be repainted.
*/
private synchronized boolean handleMouseClicksAndHover(final ViewPanel viewPanel) {
- MouseClick unprocessedMouseClick = findUnprocessedMouseClick();
+ MouseEvent mouseEventAndLocationToTrace = getMouseEventAndLocationToTrace(viewPanel);
+ if (mouseEventAndLocationToTrace != null)
+ {
+ viewPanel.getRenderingContext().mouseEvent = mouseEventAndLocationToTrace;
+ return true;
+ }
+ return false;
+ }
- if (unprocessedMouseClick != null) {
- viewPanel.getRenderingContext().mouseClick = unprocessedMouseClick;
- return false;
+ private MouseEvent getMouseEventAndLocationToTrace(ViewPanel viewPanel) {
+ MouseEvent unprocessedMouseEvent = findClickLocationToTrace();
+ if (unprocessedMouseEvent != null) {
+ return unprocessedMouseEvent;
} else
} else
- return
handleMouseHovering
(viewPanel);
+ return
getHoverLocationToTrace
(viewPanel);
}
}
- private Mouse
Click findUnprocessedMouseClick
() {
- synchronized (detectedMouse
Click
s) {
- if (detectedMouse
Click
s.isEmpty())
+ private Mouse
Event findClickLocationToTrace
() {
+ synchronized (detectedMouse
Event
s) {
+ if (detectedMouse
Event
s.isEmpty())
return null;
return null;
- return detectedMouse
Click
s.remove(0);
+ return detectedMouse
Event
s.remove(0);
}
}
}
}
- private boolean handleMouseHovering(ViewPanel viewPanel) {
- if (currentMouseLocation != null)
- // mouse click with button 0 amounts to mouse hovering event
- viewPanel.getRenderingContext().mouseClick = new MouseClick(currentMouseLocation, 0);
-
+ private MouseEvent getHoverLocationToTrace(ViewPanel viewPanel) {
if (mouseMoved) {
mouseMoved = false;
if (mouseMoved) {
mouseMoved = false;
- return true;
- } else
- return false;
+ if (currentMouseLocation != null) {
+ return new MouseEvent(currentMouseLocation, 0);
+ // mouse click with button 0 amounts to mouse hovering event
+ }
+ }
+ return null;
}
boolean isKeyPressed(final int keyCode) {
}
boolean isKeyPressed(final int keyCode) {
@@
-172,9
+179,9
@@
public class HIDInputTracker implements
}
@Override
}
@Override
- public void mouseClicked(final MouseEvent e) {
- synchronized (detectedMouse
Click
s) {
- detectedMouse
Clicks.add(new MouseClick
(e.getX(), e.getY(), e.getButton()));
+ public void mouseClicked(final
java.awt.event.
MouseEvent e) {
+ synchronized (detectedMouse
Event
s) {
+ detectedMouse
Events.add(new MouseEvent
(e.getX(), e.getY(), e.getButton()));
}
}
}
}
@@
-193,24
+200,24
@@
public class HIDInputTracker implements
}
@Override
}
@Override
- public void mouseEntered(final MouseEvent e) {
+ public void mouseEntered(final
java.awt.event.
MouseEvent e) {
mouseWithinWindow = true;
}
@Override
mouseWithinWindow = true;
}
@Override
- public synchronized void mouseExited(final MouseEvent e) {
+ public synchronized void mouseExited(final
java.awt.event.
MouseEvent e) {
mouseWithinWindow = false;
currentMouseLocation = null;
}
@Override
mouseWithinWindow = false;
currentMouseLocation = null;
}
@Override
- public synchronized void mouseMoved(final MouseEvent e) {
+ public synchronized void mouseMoved(final
java.awt.event.
MouseEvent e) {
currentMouseLocation = new Point2D(e.getX(), e.getY());
mouseMoved = true;
}
@Override
currentMouseLocation = new Point2D(e.getX(), e.getY());
mouseMoved = true;
}
@Override
- public void mousePressed(final MouseEvent e) {
+ public void mousePressed(final
java.awt.event.
MouseEvent e) {
}
@Override
}
@Override