From a8cc09eba46ab63c3aa49f45e5693c11b6d9dc63 Mon Sep 17 00:00:00 2001 From: TheBrokenRail <17478432+TheBrokenRail@users.noreply.github.com> Date: Sun, 5 Jan 2020 12:23:26 -0500 Subject: [PATCH] Implement -[NSWindow setIsVisible:] --- AppKit/NSWindow.m | 27 +++++++++++++++++++-------- AppKit/X11.backend/X11Window.m | 3 +++ 2 files changed, 22 insertions(+), 8 deletions(-) diff --git a/AppKit/NSWindow.m b/AppKit/NSWindow.m index 3a4fe640..78aa9033 100644 --- a/AppKit/NSWindow.m +++ b/AppKit/NSWindow.m @@ -2350,18 +2350,29 @@ static BOOL _allowsAutomaticWindowTabbing; } -(void)makeKeyAndOrderFront:sender { - if ([self isMiniaturized]) - [_platformWindow deminiaturize]; + if ([self isMiniaturized]) + [_platformWindow deminiaturize]; -// Order window before making it key, per doc.s and behavior + // Order window before making it key, per doc.s and behavior - [self orderWindow:NSWindowAbove relativeTo:0]; + [self orderWindow:NSWindowAbove relativeTo:0]; - if([self canBecomeKeyWindow]) - [self makeKeyWindow]; + if ([self canBecomeKeyWindow]) + [self makeKeyWindow]; - if([self canBecomeMainWindow]) - [self makeMainWindow]; + if ([self canBecomeMainWindow]) + [self makeMainWindow]; +} + +-(void)setIsVisible:(BOOL)visible { + if (_isVisible == visible) + return; + _isVisible = visible; + if (visible) { + [_platformWindow showWindowWithoutActivation]; + } else { + [_platformWindow hideWindow]; + } } -(void)orderFront:sender { diff --git a/AppKit/X11.backend/X11Window.m b/AppKit/X11.backend/X11Window.m index c71c58c3..6aff8bab 100644 --- a/AppKit/X11.backend/X11Window.m +++ b/AppKit/X11.backend/X11Window.m @@ -247,6 +247,9 @@ static NSData *makeWindowIcon() { } } +-(void)showWindowWithoutActivation { + [self ensureMapped]; +} -(void)setDelegate:delegate { _delegate=delegate;