winemac: Defer adjusting window levels while the process is hidden.
While the process is hidden, it can't get a list of its windows which would be visible were it not hidden.
This commit is contained in:
parent
3cd677958c
commit
6447e8e75c
|
@ -488,8 +488,8 @@ - (WineWindow*) frontWineWindow
|
|||
|
||||
- (void) adjustWindowLevels:(BOOL)active
|
||||
{
|
||||
NSArray* windowNumbers = [NSWindow windowNumbersWithOptions:0];
|
||||
NSMutableArray* wineWindows = [[NSMutableArray alloc] initWithCapacity:[windowNumbers count]];
|
||||
NSArray* windowNumbers;
|
||||
NSMutableArray* wineWindows;
|
||||
NSNumber* windowNumber;
|
||||
NSUInteger nextFloatingIndex = 0;
|
||||
__block NSInteger maxLevel = NSIntegerMin;
|
||||
|
@ -497,6 +497,11 @@ - (void) adjustWindowLevels:(BOOL)active
|
|||
__block WineWindow* prev = nil;
|
||||
WineWindow* window;
|
||||
|
||||
if ([NSApp isHidden]) return;
|
||||
|
||||
windowNumbers = [NSWindow windowNumbersWithOptions:0];
|
||||
wineWindows = [[NSMutableArray alloc] initWithCapacity:[windowNumbers count]];
|
||||
|
||||
// For the most part, we rely on the window server's ordering of the windows
|
||||
// to be authoritative. The one exception is if the "floating" property of
|
||||
// one of the windows has been changed, it may be in the wrong level and thus
|
||||
|
@ -2127,6 +2132,11 @@ - (void)applicationDidResignActive:(NSNotification *)notification
|
|||
[self releaseMouseCapture];
|
||||
}
|
||||
|
||||
- (void) applicationDidUnhide:(NSNotification*)aNotification
|
||||
{
|
||||
[self adjustWindowLevels];
|
||||
}
|
||||
|
||||
- (BOOL) applicationShouldHandleReopen:(NSApplication*)theApplication hasVisibleWindows:(BOOL)flag
|
||||
{
|
||||
// Note that "flag" is often wrong. WineWindows are NSPanels and NSPanels
|
||||
|
|
Loading…
Reference in New Issue