     /**
      *  @private
      */ 
-    mx_internal function backKeyHandler():Boolean
+    mx_internal function backKeyHandledByView():Boolean
     {
         if (hasEventListener(FlexEvent.BACK_KEY_PRESSED))
         {
             var event:FlexEvent = new FlexEvent(FlexEvent.BACK_KEY_PRESSED, false, true);
+            var eventCanceled:Boolean = !dispatchEvent(event);
+            
+            // If the event was canceled, that means the application
+            // is doing its own custom logic for the back key
+            return eventCanceled;
+        }
+        
+        return false;
+    }
+    
+    /**
+     *  @private
+     */ 
+    mx_internal function menuKeyHandledByView():Boolean
+    {
+        if (hasEventListener(FlexEvent.MENU_KEY_PRESSED))
+        {
+            var event:FlexEvent = new FlexEvent(FlexEvent.MENU_KEY_PRESSED, false, true);
             var eventCanceled:Boolean = !dispatchEvent(event);
             
             // If the event was canceled, that means the application

     */ 
    private function stage_orientationChangeHandler(event:StageOrientationEvent):void
    {
        setCurrentState(getCurrentViewState(), false);    
    }
    
    

[Event(name="dataChange", type="mx.events.FlexEvent")]

/**
 *  Dispatched when the menu key is pressed when a view exists inside
 *  a mobile application.
 *  
 *  @langversion 3.0
 *  @playerversion Flash 10.1
 *  @playerversion AIR 2.5
 *  @productversion Flex 4.5
 * 
 *  @eventType mx.events.FlexEvent.MENU_KEY_PRESSED
 * 
 */
[Event(name="menuKeyPressed", type="mx.events.FlexEvent")]

/**
 *  Dispatched when the current view has been activated.
 * 
 *  @eventType mx.events.ViewNavigatorEvent.VIEW_ACTIVATE
