From: Richard K. <ric...@us...> - 2005-07-15 14:00:19
|
Update of /cvsroot/actionstep/actionstep/src/org/actionstep In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1325 Modified Files: NSApplication.as Log Message: enable switching to a new key/main window if the key/main window is closed Index: NSApplication.as =================================================================== RCS file: /cvsroot/actionstep/actionstep/src/org/actionstep/NSApplication.as,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** NSApplication.as 15 Jul 2005 12:17:36 -0000 1.22 --- NSApplication.as 15 Jul 2005 14:00:09 -0000 1.23 *************** *** 449,452 **** --- 449,502 ---- private function __windowWillClose(notification:NSNotification) { + var window:NSWindow = NSWindow(notification.object); + var windowList:Array = this.windows(); + var targetList:Array = new Array(); + var count = windowList.length; + var wasKey:Boolean = window.isKeyWindow(); + var wasMain:Boolean = window.isMainWindow(); + var i:Number; + for (i = 0;i<count;i++) { + if (windowList[i].canBecomeKeyWindow() && windowList[i].isVisible() && (windowList[i]!=window)) { + targetList.push(windowList) + } + } + count = targetList.length; + if (wasMain && (count == 0)) { + //terminate after delegate call to applicationShouldTerminateAfterLastWindowClosed + } + if (wasMain) { + window.resignMainWindow(); + } + if (wasKey) { + window.resignKeyWindow(); + } + + window = mainWindow(); + if (window != null && window.canBecomeKeyWindow()) { + window.makeKeyAndOrderFront(this); + } else if (window != null) { + for (i = 0;i<count;i++) { + window = NSWindow(targetList[i]); + if (window.canBecomeKeyWindow()) { + window.makeKeyAndOrderFront(this); + } + } + } else { + for (i = 0;i<count;i++) { + window = NSWindow(targetList[i]); + if (window.canBecomeMainWindow()) { + window.makeMainWindow(this); + break; + } + } + for (i = 0;i<count;i++) { + window = NSWindow(targetList[i]); + if (window.canBecomeKeyWindow()) { + window.makeKeyAndOrderFront(this); + break; + } + } + + } } |