diff --git a/src/java/com/threerings/miso/client/MisoScenePanel.java b/src/java/com/threerings/miso/client/MisoScenePanel.java index 2d32b3ecb..beb1bc8da 100644 --- a/src/java/com/threerings/miso/client/MisoScenePanel.java +++ b/src/java/com/threerings/miso/client/MisoScenePanel.java @@ -1,5 +1,5 @@ // -// $Id: MisoScenePanel.java,v 1.44 2003/06/19 22:03:14 mdb Exp $ +// $Id: MisoScenePanel.java,v 1.45 2003/06/19 22:20:02 mdb Exp $ package com.threerings.miso.client; @@ -368,7 +368,8 @@ public class MisoScenePanel extends VirtualMediaPanel // if there's no handler, just fire the action immediately if (handler == null) { - fireObjectAction(null, scobj, new ActionEvent(this, 0, action, 0)); + fireObjectAction(null, scobj, new SceneObjectActionEvent( + this, 0, action, 0, scobj)); return; } @@ -380,8 +381,8 @@ public class MisoScenePanel extends VirtualMediaPanel // if there's no menu for this object, fire the action immediately RadialMenu menu = handler.handlePressed(scobj); if (menu == null) { - fireObjectAction(handler, scobj, - new ActionEvent(this, 0, action, 0)); + fireObjectAction(handler, scobj, new SceneObjectActionEvent( + this, 0, action, 0, scobj)); return; } @@ -400,7 +401,10 @@ public class MisoScenePanel extends VirtualMediaPanel _activeMenu = menu; _activeMenu.addActionListener(new ActionListener() { public void actionPerformed (ActionEvent e) { - fireObjectAction(handler, scobj, e); + SceneObjectActionEvent event = new SceneObjectActionEvent( + e.getSource(), e.getID(), e.getActionCommand(), + e.getModifiers(), scobj); + fireObjectAction(handler, scobj, event); } }); _activeMenu.activate(this, mbounds, scobj); diff --git a/src/java/com/threerings/miso/client/SceneObjectActionEvent.java b/src/java/com/threerings/miso/client/SceneObjectActionEvent.java new file mode 100644 index 000000000..3abfef822 --- /dev/null +++ b/src/java/com/threerings/miso/client/SceneObjectActionEvent.java @@ -0,0 +1,30 @@ +// +// $Id: SceneObjectActionEvent.java,v 1.1 2003/06/19 22:20:02 mdb Exp $ + +package com.threerings.miso.client; + +import java.awt.event.ActionEvent; + +/** + * An {@link ActionEvent} derivation that is fired when a scene object is + * clicked or menu item selected. + */ +public class SceneObjectActionEvent extends ActionEvent +{ + public SceneObjectActionEvent (Object source, int id, String action, + int modifiers, SceneObject scobj) + { + super(source, id, action, modifiers); + _scobj = scobj; + } + + /** + * Returns the scene object that was the source of this action. + */ + public SceneObject getSceneObject () + { + return _scobj; + } + + protected SceneObject _scobj; +}