      */
     private function resizeHandler(event:Event):void
     {
+        // If we're already due to update our bounds on the next
+        // commitProperties pass, avoid the redundancy.
+        if (!percentBoundsChanged)
+            updateBounds();
+    }   
+
+    /**
+     *  @private
+     *  Called when the "View Source" item in the application's context menu is
+     *  selected.
+     */
+    protected function menuItemSelectHandler(event:Event):void
+    {
+        navigateToURL(new URLRequest(_viewSourceURL), "_blank");
+    }
+    
+    /**
+     *  @private
+     *  Sets the new width and height after the Stage has resized
+     *  or when percentHeight or percentWidth has changed.
+     */
+    private function updateBounds():void
+    {
         // When user has not specified any width/height,
         // application assumes the size of the stage.
         // If developer has specified width/height,

     */
    override public function set percentHeight(value:Number):void
    {
        super.percentHeight = value;

        invalidateDisplayList();
    }
    
    //----------------------------------

                systemManager.removeEventListener(Event.RESIZE, resizeHandler);
                resizeHandlerAdded = false;
            }
        }
        
        if (percentBoundsChanged)
        {
            updateBounds();
            percentBoundsChanged = false;
        }
    }

