hook up focus events
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/824e578e Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/824e578e Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/824e578e Branch: refs/heads/tlf Commit: 824e578eea60c974b5cf79aefb96bd101783b839 Parents: fd2304d Author: Alex Harui <[email protected]> Authored: Mon May 8 11:05:59 2017 -0700 Committer: Alex Harui <[email protected]> Committed: Mon May 8 11:59:03 2017 -0700 ---------------------------------------------------------------------- .../beads/DispatchTLFKeyboardEventBead.as | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/824e578e/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/beads/DispatchTLFKeyboardEventBead.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/beads/DispatchTLFKeyboardEventBead.as b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/beads/DispatchTLFKeyboardEventBead.as index 7abd04f..28daf46 100644 --- a/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/beads/DispatchTLFKeyboardEventBead.as +++ b/frameworks/projects/TLF/src/main/flex/org/apache/flex/textLayout/beads/DispatchTLFKeyboardEventBead.as @@ -89,6 +89,8 @@ package org.apache.flex.textLayout.beads { (_strand as Object).element.addEventListener('keydown', keyEventHandler); (_strand as Object).element.addEventListener('keyup', keyEventHandler); + (_strand as Object).element.addEventListener('focus', focusEventHandler); + (_strand as Object).element.addEventListener('blur', focusEventHandler); } } @@ -207,6 +209,21 @@ package org.apache.flex.textLayout.beads event.preventDefault(); } } + + /** + * @private + */ + COMPILE::JS + protected function focusEventHandler(event:FocusEvent):void + { + event.stopImmediatePropagation(); + var newEvent:org.apache.flex.textLayout.events.FocusEvent = new org.apache.flex.textLayout.events.FocusEvent(event.type == "focus" ? "focusIn" : "focusOut"); + (_strand as IEventDispatcher).dispatchEvent(newEvent); + if(newEvent.defaultPrevented) + { + event.preventDefault(); + } + } } }
