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

carlosrovira 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 54951f9  fix an isue with filtering combobox that given a previous 
selection in the cmb was preventing a new selection when the user deleted some 
character in the text input
54951f9 is described below

commit 54951f9e6dbe64bce1802190f889303366862d45
Author: Carlos Rovira <[email protected]>
AuthorDate: Thu Feb 14 12:04:45 2019 +0100

    fix an isue with filtering combobox that given a previous selection in the 
cmb was preventing a new selection when the user deleted some character in the 
text input
---
 .../jewel/beads/controls/combobox/SearchFilter.as  | 10 ++++++++-
 .../controls/textinput/SearchFilterForList.as      | 26 +++++++++++++++++-----
 2 files changed, 29 insertions(+), 7 deletions(-)

diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/SearchFilter.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/SearchFilter.as
index 7090d83..1d4bbc8 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/SearchFilter.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/combobox/SearchFilter.as
@@ -48,6 +48,14 @@ package org.apache.royale.jewel.beads.controls.combobox
 
                override protected function keyUpLogic(input:Object):void
                {
+                       // first remove a previous selection
+                       if(list.selectedIndex != -1)
+                       {
+                               var tmp:String = input.text;
+                               list.selectedItem = null;
+                               input.text = tmp;
+                       }
+
                        var popUpVisible:Boolean = 
input.parent.view.popUpVisible;
             if (!popUpVisible) {
                 //force popup ?:
@@ -68,7 +76,7 @@ package org.apache.royale.jewel.beads.controls.combobox
                 var _textInput:TextInputBase = 
IComboBoxView(_strand['view']).textinput as TextInputBase;
                 if (_textInput) {
                                        COMPILE::JS {
-                        _textInput.element.addEventListener( 'focus', 
onInputFocus);
+                        _textInput.element.addEventListener('focus', 
onInputFocus);
                     }
                }
             }
diff --git 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/textinput/SearchFilterForList.as
 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/textinput/SearchFilterForList.as
index 2f5cdc1..583fc67 100644
--- 
a/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/textinput/SearchFilterForList.as
+++ 
b/frameworks/projects/Jewel/src/main/royale/org/apache/royale/jewel/beads/controls/textinput/SearchFilterForList.as
@@ -81,6 +81,7 @@ package org.apache.royale.jewel.beads.controls.textinput
 
                protected function keyUpHandler(event:KeyboardEvent):void
                {
+
                        const inputBase:TextInputBase = event.target as 
TextInputBase;
                        //keyup can include other things like tab navigation
 
@@ -94,6 +95,12 @@ package org.apache.royale.jewel.beads.controls.textinput
 
                protected function keyUpLogic(input:Object):void
                {
+                       // first remove a previous selection
+                       if(list.selectedIndex != -1)
+                       {
+                               list.selectedItem = null;
+                       }
+
                        applyFilter(input.text.toUpperCase());
                }
 
@@ -122,20 +129,27 @@ package org.apache.royale.jewel.beads.controls.textinput
                {
             var ir:ListItemRenderer;
             var numElements:int = list.numElements;
-            var count:uint = 0;
-            var lastActive:ListItemRenderer;
-            for (var i:int = 0; i < numElements; i++)
+            // var count:uint = 0;
+            // var lastActive:ListItemRenderer = null;
+                       while (numElements--)
             {
-                ir = list.getElementAt(i) as ListItemRenderer;
+                ir = list.getElementAt(numElements) as ListItemRenderer;
                 if (filterFunction(ir.text, filterText))
                 {
                     ir.visible = true;
-                    lastActive = ir;
-                    count++;
+                    // lastActive = ir;
+                    // count++;
                 } else {
                     ir.visible = false;
                 }
             }
+                       // if (lastActive != null && list.selectedItem != 
lastActive.data)
+                       // {
+                       //      list.selectedItem = lastActive.data;
+                       // } else
+                       // {
+                       //      list.selectedItem = null;
+                       // }
                        /* if (count == 1) {
                                //select lastActive if there is only one that 
matches?
                        }*/

Reply via email to