* Source/NSWindow.m (makeKeyAndOrderFront:): unhide/activate

application after ordering and making it key. This prevents
  focus flickering between current key window and this window
  on application activation.
  Do not try to set key and main if window can't be set as key.
This commit is contained in:
Sergii Stoian 2020-09-10 18:56:53 +03:00
parent 85c44ee8d8
commit ae555005e5

View file

@ -1667,19 +1667,22 @@ titleWithRepresentedFilename(NSString *representedFilename)
- (void) makeKeyAndOrderFront: (id)sender
{
[self deminiaturize: self];
/*
* If a window is ordered in, make sure that the application isn't hidden,
* and is active.
*/
if ([self canBecomeKeyWindow])
[NSApp unhide: self];
[self orderFrontRegardless];
[self makeKeyWindow];
/*
* OPENSTEP makes a window the main window when it makes it the key window.
* So we do the same (though the documentation doesn't mention it).
*/
[self makeMainWindow];
if ([self canBecomeKeyWindow] != NO)
{
[self makeKeyWindow];
/*
* OPENSTEP makes a window the main window when it makes it the key window.
* So we do the same (though the documentation doesn't mention it).
*/
[self makeMainWindow];
/*
* If a window is ordered in, make sure that the application isn't hidden,
* and is active.
*/
[NSApp unhide: self];
}
}
- (void) makeKeyWindow