This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 4ef95ab253271e672efa510fc251eca6f04c5448
Author: Alex Harui <[email protected]>
AuthorDate: Fri Sep 21 11:08:52 2018 -0700

    get verticalScrollPosition working for TextArea
---
 .../MXRoyale/src/main/royale/mx/controls/TextArea.as     |  4 ++++
 .../src/main/royale/mx/core/ScrollControlBase.as         | 16 ++++++++++++++++
 2 files changed, 20 insertions(+)

diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/TextArea.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/TextArea.as
index 8a8296b..6495bc8 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/TextArea.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/TextArea.as
@@ -23,6 +23,7 @@ COMPILE::JS {
        import goog.events;
        import org.apache.royale.core.WrappedHTMLElement;
        import org.apache.royale.html.util.addElementToWrapper;
+    import org.apache.royale.utils.CSSUtils;
 }
 COMPILE::SWF
 {
@@ -1750,6 +1751,9 @@ public class TextArea extends ScrollControlBase
                COMPILE::JS
                {
                        (element as HTMLTextAreaElement).value = value;
+            verticalScrollSize = 
CSSUtils.toNumber(getComputedStyle(element).lineHeight.toString(), width);
+            if (verticalScrollPosition)
+                element.scrollTop = verticalScrollPosition * 
verticalScrollSize;
                        dispatchEvent(new Event('textChange'));
                }
 //        textSet = true;
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/core/ScrollControlBase.as 
b/frameworks/projects/MXRoyale/src/main/royale/mx/core/ScrollControlBase.as
index 4c5901a..3c795ae 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/core/ScrollControlBase.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/core/ScrollControlBase.as
@@ -387,6 +387,10 @@ public class ScrollControlBase extends UIComponent
 //        if (horizontalScrollBar)
 //            horizontalScrollBar.scrollPosition = value;
 
+        COMPILE::JS
+        {
+            element.scrollLeft = value;
+        }
         dispatchEvent(new Event("viewChanged"));
     }
 
@@ -690,6 +694,14 @@ public class ScrollControlBase extends UIComponent
      */
     mx_internal var _verticalScrollPosition:Number = 0;
 
+    /**
+     *  @private
+     *  Storage for the verticalScrollSize property.
+     *  Flex scrolls by step sizes other than pixels.  TextArea
+     *  scrolls by lines of text, Lists scroll by itemRendererIndex
+     */
+    protected var verticalScrollSize:Number = 1;
+    
     [Bindable("scroll")]
     [Bindable("viewChanged")]
     [Inspectable(defaultValue="0")]
@@ -722,6 +734,10 @@ public class ScrollControlBase extends UIComponent
 //        if (verticalScrollBar)
 //            verticalScrollBar.scrollPosition = value;
 
+        COMPILE::JS
+        {
+            element.scrollTop = value * verticalScrollSize;
+        }
         dispatchEvent(new Event("viewChanged"));
     }
 

Reply via email to