You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2013/10/18 21:43:41 UTC

[3/3] git commit: [flex-sdk] [refs/heads/develop] - FLEX-33830 HScrollbar should defer some work to the validation methods otherwise it will get incorrect metrics

FLEX-33830 HScrollbar should defer some work to the validation methods otherwise it will get incorrect metrics


Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/24c1d8f0
Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/24c1d8f0
Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/24c1d8f0

Branch: refs/heads/develop
Commit: 24c1d8f019974841aaf5558ce423dcdb5752b708
Parents: 3e752d9
Author: Alex Harui <ah...@apache.org>
Authored: Fri Oct 18 12:43:26 2013 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Fri Oct 18 12:43:26 2013 -0700

----------------------------------------------------------------------
 .../spark/src/spark/components/HScrollBar.as    | 22 +++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/24c1d8f0/frameworks/projects/spark/src/spark/components/HScrollBar.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/spark/src/spark/components/HScrollBar.as b/frameworks/projects/spark/src/spark/components/HScrollBar.as
index 90d3aa3..ca8d456 100644
--- a/frameworks/projects/spark/src/spark/components/HScrollBar.as
+++ b/frameworks/projects/spark/src/spark/components/HScrollBar.as
@@ -160,6 +160,8 @@ public class HScrollBar extends ScrollBarBase
     //
     //--------------------------------------------------------------------------
     
+    private var maxAndPageSizeInvalid:Boolean = false;
+
     private function updateMaximumAndPageSize():void
     {
         var hsp:Number = viewport.horizontalScrollPosition;
@@ -532,11 +534,29 @@ public class HScrollBar extends ScrollBarBase
         if (allStyles || styleName == "interactionMode")
         {
             if (viewport)
-                updateMaximumAndPageSize();
+            {
+                // Some of the information needed
+                // is calculated in measure() on a child
+                maxAndPageSizeInvalid = true;
+                invalidateSize();
+            }
         }
     }
     
     /**
+     *  @private 
+     */
+    override protected function measure():void
+    {
+        super.measure();
+        if (maxAndPageSizeInvalid)
+        {
+            maxAndPageSizeInvalid = false;
+            updateMaximumAndPageSize();
+        }
+    }
+        
+    /**
      *  @private
      *  Scroll horizontally by event.delta "steps".  This listener is added to the viewport
      *  at a lower priority then the vertical scrollbar mouse wheel listener, so that vertical