- public boolean handleDetectedComponentMouseEvents() {
- if (objectUnderMouse != null) {
- if (mouseEvent.button == 0) {
- // mouse over
- if (currentMouseOverComponent == null) {
- currentMouseOverComponent = objectUnderMouse;
- return currentMouseOverComponent.mouseEntered();
- } else if (currentMouseOverComponent != objectUnderMouse) {
- boolean viewRepaintNeeded = currentMouseOverComponent.mouseExited();
- currentMouseOverComponent = objectUnderMouse;
- return viewRepaintNeeded | currentMouseOverComponent.mouseEntered();
- }
- } else {
- // mouse click
- return objectUnderMouse.mouseClicked();
- }
- } else if (currentMouseOverComponent != null) {
- boolean viewRepaintNeeded = currentMouseOverComponent.mouseExited();
- currentMouseOverComponent = null;
- return viewRepaintNeeded;
+ public boolean handlePossibleComponentMouseEvent() {
+ if (mouseEvent == null) return false;
+
+ boolean viewRepaintNeeded = false;
+
+ if (objectPreviouslyUnderMouseCursor != currentObjectUnderMouseCursor) {
+ // Mouse cursor has just entered or left component.
+ viewRepaintNeeded = objectPreviouslyUnderMouseCursor != null && objectPreviouslyUnderMouseCursor.mouseExited();
+ viewRepaintNeeded |= currentObjectUnderMouseCursor != null && currentObjectUnderMouseCursor.mouseEntered();
+ objectPreviouslyUnderMouseCursor = currentObjectUnderMouseCursor;