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. 

Reply via email to