Updated Branches: refs/heads/develop bbf2c5332 -> df7e9a6d4
FIX FLEX-33166 Mobile TextInput with native StageTextInput cannot be included in scrollable forms - fixed failing mustella test: mobile/SoftKeyboard/properties/SK_StageText_Properties SoftKeyboard_StageText_property_resizeForSoftKeyboard_false -> added check for ScrollableStageText in addtion to StyleableStageText in Mustella FakeSoftKeyboard - fixed issue when finger is pressed on TI, then scrolled, then released on the same TI (thanks Om) Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/40f2927e Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/40f2927e Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/40f2927e Branch: refs/heads/develop Commit: 40f2927e869cbed9a5e9ed999683374aeb72d336 Parents: 9d6c2d3 Author: mamsellem <[email protected]> Authored: Tue Nov 19 02:33:58 2013 +0100 Committer: mamsellem <[email protected]> Committed: Tue Nov 19 02:33:58 2013 +0100 ---------------------------------------------------------------------- .../supportClasses/ScrollableStageText.as | 21 ++++++++++++-------- mustella/as3/src/mustella/FakeSoftKeyboard.as | 3 ++- 2 files changed, 15 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/40f2927e/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ScrollableStageText.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ScrollableStageText.as b/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ScrollableStageText.as index 28ed07a..518f6a7 100644 --- a/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ScrollableStageText.as +++ b/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ScrollableStageText.as @@ -1376,9 +1376,6 @@ public class ScrollableStageText extends UIComponent implements IStyleableEdita if (stageText != null) { stageText.assignFocus(); // will trigger stageTextfocusIn - //TODO what happens when setting focus to a component in a popup that is not visible yet - // else - // pendingFocusedStageText = stageText; } } @@ -1402,10 +1399,7 @@ public class ScrollableStageText extends UIComponent implements IStyleableEdita // Move the cursor to the end of the appended text. stageText.selectRange(_text.length, _text.length); - dispatchEvent(new TextOperationEvent(TextOperationEvent.CHANGE)); - - invalidateProxy(); } } @@ -1785,6 +1779,7 @@ public class ScrollableStageText extends UIComponent implements IStyleableEdita // always create proxy image // register listeners + addEventListener(MouseEvent.CLICK, mouseClickHandler); addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); if (stageText != null) @@ -1813,8 +1808,9 @@ public class ScrollableStageText extends UIComponent implements IStyleableEdita stageText.stage = null; - - removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); + removeEventListener(MouseEvent.CLICK, mouseClickHandler); + removeEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); + removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); stageText.removeEventListener(Event.CHANGE, stageText_changeHandler); stageText.removeEventListener(Event.COMPLETE, stageText_completeHandler); @@ -1847,6 +1843,10 @@ public class ScrollableStageText extends UIComponent implements IStyleableEdita private function mouseUpHandler(event:MouseEvent):void { isMouseDown = false; + } + + private function mouseClickHandler(event:MouseEvent):void + { setFocus(); } @@ -1876,6 +1876,11 @@ public class ScrollableStageText extends UIComponent implements IStyleableEdita private function stageText_focusInHandler(event:FocusEvent):void { startTextEdit(); + // Focus events are documented as bubbling. However, all events coming + // from StageText are set to not bubble. So we need to create an + // appropriate bubbling event here. + dispatchEvent(new FocusEvent(event.type, true, event.cancelable, + event.relatedObject, event.shiftKey, event.keyCode, event.direction)); } private function stageText_focusOutHandler(event:FocusEvent):void http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/40f2927e/mustella/as3/src/mustella/FakeSoftKeyboard.as ---------------------------------------------------------------------- diff --git a/mustella/as3/src/mustella/FakeSoftKeyboard.as b/mustella/as3/src/mustella/FakeSoftKeyboard.as index a5cf9cf..6f7629e 100644 --- a/mustella/as3/src/mustella/FakeSoftKeyboard.as +++ b/mustella/as3/src/mustella/FakeSoftKeyboard.as @@ -68,7 +68,8 @@ public class FakeSoftKeyboard var comp:Object = event.target; if (comp is TextField || comp is InteractiveObject) { - if (!(comp.needsSoftKeyboard || getQualifiedClassName(comp).indexOf("StyleableStageText") > 0)) + var className: String = getQualifiedClassName(comp); + if (!(comp.needsSoftKeyboard || className.indexOf("StyleableStageText") > 0 || className.indexOf("ScrollableStageText") > 0 )) return; if (!comp.dispatchEvent(new SoftKeyboardEvent(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING,
