      */
     public function set navigationLayout(value:LayoutBase):void
     {
-        var changeEvent:PropertyChangeEvent = 
-            PropertyChangeEvent.createUpdateEvent(this, "navigationLayout", _navigationLayout, value);
-        
+        var oldValue:LayoutBase = _navigationLayout;
         _navigationLayout = value;
-        dispatchEvent(changeEvent);
+        
+        if (hasEventListener(PropertyChangeEvent.PROPERTY_CHANGE))
+        {
+            var changeEvent:PropertyChangeEvent = 
+                PropertyChangeEvent.createUpdateEvent(this, "navigationLayout", _navigationLayout, value);
+        
+            dispatchEvent(changeEvent);
+        }
     }
 	
-	//----------------------------------
-	//  actionBarVisible
-	//----------------------------------
-	private var _actionBarVisible:Boolean = true;
-	
-	/**
-	 *  Flag indicating whether a view should show the action bar or not.
-	 *  This doesn't necessarily correlate to the visible property of the
-	 *  navigator's ActionBar.  In the end, ViewNavigator and the developer
-	 *  have the last say as to what's visible.
-	 *
-	 *  @default true
-     * 
-     *  @langversion 3.0
-     *  @playerversion Flash 10.1
-     *  @playerversion AIR 2.5
-     *  @productversion Flex 4.5
-	 */
-	public function get actionBarVisible():Boolean
-	{
-		return _actionBarVisible;
-	}
-    
-    /**
-     *  @private
-     */ 
-	public function set actionBarVisible(value:Boolean):void
-	{
-        _actionBarVisible = value;
-		
-		// Immediately request actionBar's visibility be toggled
-		if (active && navigator)
-		{
-			if (_actionBarVisible)
-				navigator.showActionBar();
-			else
-				navigator.hideActionBar();
-		}
-	}
+
     
 	//----------------------------------
 	//  tabBarVisible

    private var _active:Boolean = false;
    
    /**
     *  Flag indicating whether the current screen is active.  The
     *  view's navigator will automatically set this flag to true
     *  or false as its state changes.  This getter will dispatch
     *  <code>FlexEvent.VIEW_ACTIVATE</code> and <code>FlexEvent.VIEW_DEACTIVATE</code>
     *  as the value changes.
     *  
     *  @default false
     * 

        {
            _overlayControls = value;
            
            var changeEvent:PropertyChangeEvent = 
                PropertyChangeEvent.createUpdateEvent(this, "overlayControls", _overlayControls, value);
            
            if (hasEventListener(changeEvent.type))
                dispatchEvent(changeEvent);
        }
    }
    
    //----------------------------------
    //  desctructionPolicy
    //----------------------------------
    [Inspectable(category="General", enumeration="auto,none", defaultValue="auto")]
    /**
     *  Defines the destruction policy the view's navigator should use
     *  when this view is removed. If set to "auto", the navigator will
