             _width = width;
             _height = height;
             
+            if (layoutFeatures)
+                layoutFeatures.layoutWidth = width;
+                
             dispatchPropertyChangeEvent("width", oldWidth, width);
             dispatchPropertyChangeEvent("height", oldHeight, height);
 

        layoutFeatures = new AdvancedLayoutFeatures();
        layoutFeatures.layoutX = _x;
        layoutFeatures.layoutY = _y;
    }
    
    protected function invalidateTransform(changeInvalidatesLayering:Boolean = true,

    //
    //--------------------------------------------------------------------------

    //----------------------------------
    //  mirror
    //----------------------------------

    public function get mirror():Boolean
    {
        return layoutFeatures && layoutFeatures.mirror;
    }
    
    public function set mirror(value:Boolean):void
    {
        if (value == mirror)
            return;
            
        if (layoutFeatures == null)
            allocateLayoutFeatures();
        layoutFeatures.mirror = value;
        invalidateTransform();
    }

    //----------------------------------
    //  dir
    //----------------------------------

    private var _dir:String;
    
    public function get dir():String
    {
        return _dir;
    }
    
    public function set dir(value:String):void
    {
        if (_dir == value)
            return;
        _dir = value;
    }
        
    /**
     *  Defines a set of adjustments that can be applied to the component's transform in a way that is 
     *  invisible to the component's parent's layout. For example, if you want a layout to adjust 
