diff --git a/src/as/com/threerings/mx/events/CommandEvent.as b/src/as/com/threerings/mx/events/CommandEvent.as index 081bb32e7..30d5dfd6e 100644 --- a/src/as/com/threerings/mx/events/CommandEvent.as +++ b/src/as/com/threerings/mx/events/CommandEvent.as @@ -47,6 +47,16 @@ public class CommandEvent extends Event this.arg = arg; } + /** + * Mark this command as handled, stopping its propagation up the + * hierarchy. + */ + public function markAsHandled () :void + { + preventDefault(); + stopImmediatePropagation(); + } + override public function clone () :Event { return create(command, arg); diff --git a/src/as/com/threerings/util/Controller.as b/src/as/com/threerings/util/Controller.as index 481e7b616..2d1ac93f2 100644 --- a/src/as/com/threerings/util/Controller.as +++ b/src/as/com/threerings/util/Controller.as @@ -96,8 +96,7 @@ public class Controller if (handleAction(event.command, event.arg)) { // if we handle the event, stop it from moving outward to another // controller - event.preventDefault(); - event.stopImmediatePropagation(); + event.markAsHandled(); } }