- MouseEvent mouseEventAndLocationToTrace = getMouseEventAndLocationToTrace(viewPanel);
- if (mouseEventAndLocationToTrace != null)
- {
- viewPanel.getRenderingContext().mouseEvent = mouseEventAndLocationToTrace;
- return true;
+ boolean rerenderNeeded = false;
+ MouseEvent event = findClickLocationToTrace();
+ if (event != null) {
+ // process mouse clicks as a first priority
+ rerenderNeeded = true;
+ } else {
+ // when there are no mouse clicks, process mouse hovering
+
+ if (mouseMoved) {
+ mouseMoved = false;
+ // we would like to re-render frame when user moved mouse, to see what objects mouse is hovering over
+ rerenderNeeded = true;
+ }
+
+ if (currentMouseLocation != null) {
+ // mouse click with button 0 amounts to mouse hovering event
+ event = new MouseEvent(currentMouseLocation, 0);
+ }