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 4f9b72cfd0 Emulation - allow numeric stepper to accept empty string as 
beginning of new value input
4f9b72cfd0 is described below

commit 4f9b72cfd0b4a68a47dc192c9f59866520a43ad1
Author: Yishay Weiss <[email protected]>
AuthorDate: Wed Jul 13 18:20:49 2022 +0300

    Emulation - allow numeric stepper to accept empty string as beginning of 
new value input
---
 .../main/royale/mx/controls/beads/NumericStepperView.as    | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/NumericStepperView.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/NumericStepperView.as
index 91b3fc2bd8..179c17f951 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/NumericStepperView.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/NumericStepperView.as
@@ -24,6 +24,8 @@ package mx.controls.beads
     import org.apache.royale.core.IUIBase;
     import org.apache.royale.html.beads.NumericStepperView;
     import org.apache.royale.events.Event;
+    import mx.events.FocusEvent;
+    import org.apache.royale.events.IEventDispatcher;
        
     /**
      *  The NumericStepperView class overrides the Basic
@@ -64,6 +66,7 @@ package mx.controls.beads
                 */
                override protected function inputChangeHandler(event:Event) : 
void
                {
+            var isTextInputEmpty:Boolean = input.text == "";
                        var signAndNumber:Array = input.text.split("-");
                        var newValue:Number = Number(signAndNumber.length == 2 
? signAndNumber[1] : signAndNumber[0]);
                        var sign:int = signAndNumber.length == 2 ? -1 : 1;
@@ -74,8 +77,19 @@ package mx.controls.beads
                        else {
                                input.text = String(spinner.value);
                        }
+            if (isTextInputEmpty)
+            {
+                input.text = ""; // We want to allow user to type a new value 
regardless of above constraints
+                (_strand as 
IEventDispatcher).addEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
+            }
                }
 
+        private function focusOutHandler(event:FocusEvent):void
+        {
+                       input.text = "" + spinner.value;
+            (_strand as 
IEventDispatcher).removeEventListener(FocusEvent.FOCUS_OUT, focusOutHandler);
+        }
+
        }
 
 

Reply via email to