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

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


The following commit(s) were added to refs/heads/develop by this push:
     new 45a55babbc Emulation - Don't rely on globalToLocal for calculating 
thumb location on drag
45a55babbc is described below

commit 45a55babbc5cf374c5812bb9b7a316c9329cd357
Author: Yishay Weiss <[email protected]>
AuthorDate: Thu May 19 09:43:25 2022 +0300

    Emulation - Don't rely on globalToLocal for calculating thumb location on 
drag
---
 .../main/royale/mx/controls/sliderClasses/SliderThumb.as  | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/sliderClasses/SliderThumb.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/sliderClasses/SliderThumb.as
index 05b1deacc4..c77c2c6752 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/sliderClasses/SliderThumb.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/sliderClasses/SliderThumb.as
@@ -84,6 +84,12 @@ package mx.controls.sliderClasses
                 */
                mx_internal var thumbIndex:int;
        
+               /**
+                *  @private
+                *  original x-position
+                */
+               private var originalXPosition:Number;
+               
                /**
                 *  @private
                 *  x-position offset.
@@ -370,7 +376,9 @@ package mx.controls.sliderClasses
                        {
                                // Store where the mouse is positioned
                                // relative to the thumb when first pressed.
-                               xOffset = event.localX; 
+                               var isHorizontal:Boolean = 
Slider(owner).direction == SliderDirection.HORIZONTAL;
+                               xOffset = isHorizontal ? event.stageX : 
event.stageY; 
+                               originalXPosition = xPosition;
                                
                                systemManager.addEventListener(
                                        MouseEvent.MOUSE_MOVE, 
mouseMoveHandler, true);
@@ -409,10 +417,11 @@ package mx.controls.sliderClasses
                        if (enabled)
                        {
                                var pt:Point = new Point(event.stageX, 
event.stageY);
-                               pt = 
Slider(owner).innerSlider.globalToLocal(pt);
                                
                                // Place the thumb in the correct position.
-                               moveXPos(pt.x - xOffset + width / 2, false, 
true);
+                               var isHorizontal:Boolean = 
Slider(owner).direction == SliderDirection.HORIZONTAL;
+                               var movement:Number = isHorizontal ? pt.x - 
xOffset : xOffset - pt.y;
+                               moveXPos(originalXPosition + movement, false, 
true);
                                
                                // Callback to the Slider to handle tooltips 
and update its value.
                                Slider(owner).onThumbMove(this);

Reply via email to