This is an automated email from the ASF dual-hosted git repository.
piotrz 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 bf8a300 DropDownList: Fix open/close mechanism
bf8a300 is described below
commit bf8a300aec5df9dd666e6e3bf6d15fa0a727f113
Author: Piotr Zarzycki <[email protected]>
AuthorDate: Fri Oct 4 14:11:30 2019 +0200
DropDownList: Fix open/close mechanism
(reference #474 )
---
.../beads/controllers/DropDownListController.as | 22 +++++++++++++---------
1 file changed, 13 insertions(+), 9 deletions(-)
diff --git
a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/controllers/DropDownListController.as
b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/controllers/DropDownListController.as
index e3d7572..9f09ba0 100644
---
a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/controllers/DropDownListController.as
+++
b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/beads/controllers/DropDownListController.as
@@ -70,15 +70,19 @@ public class DropDownListController implements IBead,
IBeadController
var popUpModel:ISelectionModel = UIBase(viewBead.popUp).model as
ISelectionModel;
IUIBase(viewBead.popUp).width = IUIBase(_strand).width;
popUpModel.dataProvider = selectionModel.dataProvider;
- popUpModel.labelField = selectionModel.labelField;
- viewBead.popUpVisible = true; // adds to display list as well
+ popUpModel.labelField = selectionModel.labelField;// adds to display
list as well
popUpModel.selectedIndex = selectionModel.selectedIndex;
- var pt:Point = new Point(0, IUIBase(_strand).height);
- pt = PointUtils.localToGlobal(pt, _strand);
- IUIBase(viewBead.popUp).x = pt.x;
- IUIBase(viewBead.popUp).y = pt.y;
- IEventDispatcher(viewBead.popUp).addEventListener("change",
changeHandler);
- UIComponent(viewBead.popUp).callLater(registerDismissHandler);
+ viewBead.popUpVisible = !viewBead.popUpVisible;
+
+ if (viewBead.popUpVisible)
+ {
+ var pt:Point = new Point(0, IUIBase(_strand).height);
+ pt = PointUtils.localToGlobal(pt, _strand);
+ IUIBase(viewBead.popUp).x = pt.x;
+ IUIBase(viewBead.popUp).y = pt.y;
+ IEventDispatcher(viewBead.popUp).addEventListener("change",
changeHandler);
+ UIComponent(viewBead.popUp).callLater(registerDismissHandler);
+ }
}
// The browser send clicks to listeners added as the event is being
dispatched, so if we don't
@@ -90,7 +94,7 @@ public class DropDownListController implements IBead,
IBeadController
private function
dismissHandler(event:org.apache.royale.events.MouseEvent):void
{
- if (event.target == _strand) return;
+ if (event.target == _strand || event.target.parent == _strand) return;
IUIBase(_strand).topMostEventDispatcher.removeEventListener(org.apache.royale.events.MouseEvent.CLICK,
dismissHandler);
var viewBead:IDropDownListView =
_strand.getBeadByType(IDropDownListView) as IDropDownListView;