      */
     private function computeEffectiveVisibility():void
     {
-        // start out with true visibility and enablement
-        // then loop up parent-chain to see if any of them are false
+        
+        // Check our design layer first.
+        if (designLayer && !designLayer.effectiveVisibility)
+        {
+            effectiveVisibility = false;
+            return;
+        }
+        
+        // Start out with true visibility and enablement
+        // then loop up parent-chain to see if any of them are false.
         effectiveVisibility = true;
         var current:IVisualElement = this;
         
         while (current)
         {
-            if (!current.visible || 
-                (current.designLayer && !current.designLayer.effectiveVisibility))
+            if (!current.visible)
             {
                 effectiveVisibility = false;
                 break;

    
    //--------------------------------------------------------------------------
    //
    //  Overridden methods: UIComponent
    //
    //--------------------------------------------------------------------------

    {
        effectiveVisibilityChanged = true;
        invalidateProperties();
    }
    
    /**
