Updated Branches: refs/heads/develop 5d0b30c79 -> b0b5820d9
FLEX-34032 Fix ActiveWindowManager injection. Top-Level Windows can switch between the top-most modal and non-modal windows floating above it, not just among the non-modal windows Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/a5ff72a9 Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/a5ff72a9 Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/a5ff72a9 Branch: refs/heads/develop Commit: a5ff72a99190bb72a5ed89464c57abdb63fb4625 Parents: 036df07 Author: Alex Harui <aha...@apache.org> Authored: Sun Feb 9 23:44:01 2014 -0800 Committer: Alex Harui <aha...@apache.org> Committed: Sun Feb 9 23:44:01 2014 -0800 ---------------------------------------------------------------------- .../src/mx/managers/systemClasses/ActiveWindowManager.as | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/a5ff72a9/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as b/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as index b0c9b5d..337fc28 100644 --- a/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as +++ b/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as @@ -464,9 +464,9 @@ public class ActiveWindowManager extends EventDispatcher implements IActiveWindo var startIndex:int = 0; if (numModalWindows > 0) { - // if there is a modal window, only non-modal + // if there is a modal window, only the top modal and non-modal // windows above it are in play - startIndex = findHighestModalForm() + 1; + startIndex = findHighestModalForm(); } if (!systemManager.isTopLevelRoot() || forms.length > 1) @@ -520,7 +520,10 @@ public class ActiveWindowManager extends EventDispatcher implements IActiveWindo index = childList.getChildIndex(p); newIndex = index; - + // activating top-most modal so don't switch it to the top + if (p == forms[startIndex]) + return; + //we need to reset n because activating p's //FocusManager could have caused //forms.length to have changed.