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);