Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 14 additions & 9 deletions src/gov/nasa/worldwind/awt/AWTInputHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -404,24 +404,26 @@ public void mouseClicked(final MouseEvent awtMouseEvent)
if (pickedObjects != null && pickedObjects.getTopPickedObject() != null
&& !pickedObjects.getTopPickedObject().isTerrain())
{
// Something is under the cursor, so it's deemed "selected".
Point awtPt = awtMouseEvent.getPoint(); // AWT screen coordinates

// Something is under the cursor, so it's deemed "selected".
if (MouseEvent.BUTTON1 == mouseEvent.getButton())
{
if (mouseEvent.getClickCount() <= 1)
{
this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.LEFT_CLICK,
mouseEvent, pickedObjects));
awtPt, mouseEvent, pickedObjects));
}
else
{
this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.LEFT_DOUBLE_CLICK,
mouseEvent, pickedObjects));
awtPt, mouseEvent, pickedObjects));
}
}
else if (MouseEvent.BUTTON3 == mouseEvent.getButton())
{
this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.RIGHT_CLICK,
mouseEvent, pickedObjects));
awtPt, mouseEvent, pickedObjects));
}

this.wwd.getView().firePropertyChange(AVKey.VIEW, null, this.wwd.getView());
Expand Down Expand Up @@ -472,16 +474,18 @@ public void mousePressed(MouseEvent awtMouseEvent)
if (this.objectsAtButtonPress != null && objectsAtButtonPress.getTopPickedObject() != null
&& !this.objectsAtButtonPress.getTopPickedObject().isTerrain())
{
Point awtPt = awtMouseEvent.getPoint(); // AWT screen coordinates

// Something is under the cursor, so it's deemed "selected".
if (MouseEvent.BUTTON1 == mouseEvent.getButton())
{
this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.LEFT_PRESS,
mouseEvent, this.objectsAtButtonPress));
awtPt, mouseEvent, this.objectsAtButtonPress));
}
else if (MouseEvent.BUTTON3 == mouseEvent.getButton())
{
this.callSelectListeners(new SelectEvent(this.wwd, SelectEvent.RIGHT_PRESS,
mouseEvent, this.objectsAtButtonPress));
awtPt, mouseEvent, this.objectsAtButtonPress));
}

// Initiate a repaint.
Expand Down Expand Up @@ -600,8 +604,9 @@ public void mouseDragged(MouseEvent awtMouseEvent)
&& !pickedObjects.getTopPickedObject().isTerrain()))
{
this.isDragging = true;
DragSelectEvent selectEvent = new DragSelectEvent(this.wwd, SelectEvent.DRAG, mouseEvent, pickedObjects,
prevMousePoint);
DragSelectEvent selectEvent = new DragSelectEvent(this.wwd, SelectEvent.DRAG,
awtMouseEvent.getPoint(), mouseEvent,
pickedObjects, prevMousePoint);
this.callSelectListeners(selectEvent);

// If no listener consumed the event, then cancel the drag.
Expand Down Expand Up @@ -790,7 +795,7 @@ protected void cancelDrag()
if (this.isDragging)
{
this.callSelectListeners(new DragSelectEvent(this.wwd, SelectEvent.DRAG_END, null,
this.objectsAtButtonPress, this.mousePoint));
null, this.objectsAtButtonPress, this.mousePoint));
}

this.isDragging = false;
Expand Down
7 changes: 4 additions & 3 deletions src/gov/nasa/worldwind/event/DragSelectEvent.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,11 @@ public class DragSelectEvent extends SelectEvent
{
private final java.awt.Point previousPickPoint;

public DragSelectEvent(Object source, String eventAction, MouseEvent mouseEvent, PickedObjectList pickedObjects,
java.awt.Point previousPickPoint)
public DragSelectEvent(Object source, String eventAction, java.awt.Point awtPt, MouseEvent mouseEvent,
PickedObjectList pickedObjects,
java.awt.Point previousPickPoint)
{
super(source, eventAction, mouseEvent, pickedObjects);
super(source, eventAction, awtPt, mouseEvent, pickedObjects);
this.previousPickPoint = previousPickPoint;
}

Expand Down
10 changes: 9 additions & 1 deletion src/gov/nasa/worldwind/event/SelectEvent.java
Original file line number Diff line number Diff line change
Expand Up @@ -104,15 +104,17 @@ public class SelectEvent extends WWEvent
private final Point pickPoint; // GL surface coordinates
private final Rectangle pickRect; // GL surface coordinates
private final MouseEvent mouseEvent; // GL surface coordinates
private final Point awtMousePt; // AWT screen coordinates
private final PickedObjectList pickedObjects;

public SelectEvent(Object source, String eventAction, MouseEvent mouseEvent, PickedObjectList pickedObjects)
public SelectEvent(Object source, String eventAction, Point awtPt, MouseEvent mouseEvent, PickedObjectList pickedObjects)
{
super(source);
this.eventAction = eventAction;
this.pickPoint = mouseEvent != null ? mouseEvent.getPoint() : null;
this.pickRect = null;
this.mouseEvent = mouseEvent;
this.awtMousePt = awtPt;
this.pickedObjects = pickedObjects;
}

Expand All @@ -123,6 +125,7 @@ public SelectEvent(Object source, String eventAction, Point pickPoint, PickedObj
this.pickPoint = pickPoint;
this.pickRect = null;
this.mouseEvent = null;
this.awtMousePt = null;
this.pickedObjects = pickedObjects;
}

Expand All @@ -133,6 +136,7 @@ public SelectEvent(Object source, String eventAction, Rectangle pickRectangle, P
this.pickPoint = null;
this.pickRect = pickRectangle;
this.mouseEvent = null;
this.awtMousePt = null;
this.pickedObjects = pickedObjects;
}

Expand All @@ -150,6 +154,10 @@ public String getEventAction()
return this.eventAction != null ? this.eventAction : "gov.nasa.worldwind.SelectEvent.UnknownEventAction";
}

public Point getAwtMousePt() {
return awtMousePt;
}

public Point getPickPoint()
{
return this.pickPoint;
Expand Down
7 changes: 3 additions & 4 deletions src/gov/nasa/worldwindx/examples/ContextMenusOnShapes.java
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ public void selected(SelectEvent event) {
}
}

@SuppressWarnings({"UnusedDeclaration"})
protected void highlight(SelectEvent event, Object o) {
if (this.lastPickedPlacemark == o) {
return; // same thing selected
Expand Down Expand Up @@ -110,7 +109,7 @@ protected void showContextMenu(SelectEvent event) {
}

ContextMenu menu = new ContextMenu((Component) event.getSource(), menuInfo);
menu.show(event.getMouseEvent());
menu.show(event.getAwtMousePt());
}
}
}
Expand Down Expand Up @@ -145,7 +144,7 @@ protected void makeMenuItems() {
}
}

public void show(final MouseEvent event) {
public void show(final Point screenPt) {
JPopupMenu popup = new JPopupMenu();

popup.add(this.menuTitleItem);
Expand All @@ -156,7 +155,7 @@ public void show(final MouseEvent event) {
popup.add(subMenu);
}

popup.show(sourceComponent, event.getX(), event.getY());
popup.show(sourceComponent, (int)screenPt.getX(), (int)screenPt.getY());
}
}

Expand Down