Ken Thomases : winemac: Use window server' s window list to find next window to offer focus to.

Alexandre Julliard julliard at winehq.org
Fri May 17 14:24:33 CDT 2013


Module: wine
Branch: master
Commit: 0d4a26eff5b0765dc3ae8ad4562b1f1d6c8998cc
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0d4a26eff5b0765dc3ae8ad4562b1f1d6c8998cc

Author: Ken Thomases <ken at codeweavers.com>
Date:   Thu May 16 18:43:28 2013 -0500

winemac: Use window server's window list to find next window to offer focus to.

... rather than our orderedWineWindows array, which is going away.

---

 dlls/winemac.drv/cocoa_app.m |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/dlls/winemac.drv/cocoa_app.m b/dlls/winemac.drv/cocoa_app.m
index 67984cd..74eff00 100644
--- a/dlls/winemac.drv/cocoa_app.m
+++ b/dlls/winemac.drv/cocoa_app.m
@@ -322,9 +322,21 @@ int macdrv_err_on;
     {
         if (event->window_got_focus.serial == windowFocusSerial)
         {
+            NSMutableArray* windows = [keyWindows mutableCopy];
+            NSNumber* windowNumber;
+            WineWindow* window;
+
+            for (windowNumber in [NSWindow windowNumbersWithOptions:NSWindowNumberListAllSpaces])
+            {
+                window = (WineWindow*)[NSApp windowWithWindowNumber:[windowNumber integerValue]];
+                if ([window isKindOfClass:[WineWindow class]] && [window screen] &&
+                    ![windows containsObject:window])
+                    [windows addObject:window];
+            }
+
             triedWindows = (NSMutableSet*)event->window_got_focus.tried_windows;
             [triedWindows addObject:(WineWindow*)event->window];
-            for (NSWindow* window in [keyWindows arrayByAddingObjectsFromArray:[self orderedWineWindows]])
+            for (window in windows)
             {
                 if (![triedWindows containsObject:window] && [window canBecomeKeyWindow])
                 {
@@ -333,6 +345,7 @@ int macdrv_err_on;
                 }
             }
             triedWindows = nil;
+            [windows release];
         }
     }
 




More information about the wine-cvs mailing list