diff --git a/atom/browser/native_window_mac.mm b/atom/browser/native_window_mac.mm index c926d3724684..c478b4633c01 100644 --- a/atom/browser/native_window_mac.mm +++ b/atom/browser/native_window_mac.mm @@ -1085,7 +1085,7 @@ void NativeWindowMac::Show() { completionHandler:^(NSModalResponse) {}]; return; } - + // Reattach the window to the parent to actually show it. if (parent()) InternalSetParentWindow(parent(), true); @@ -1101,7 +1101,7 @@ void NativeWindowMac::ShowInactive() { // Reattach the window to the parent to actually show it. if (parent()) InternalSetParentWindow(parent(), true); - + [window_ orderFrontRegardless]; } @@ -1111,7 +1111,7 @@ void NativeWindowMac::Hide() { [parent()->GetNativeWindow() endSheet:window_]; return; } - + // Deattach the window from the parent before. if (parent()) InternalSetParentWindow(parent(), false); @@ -1548,26 +1548,6 @@ void NativeWindowMac::SetBrowserView(NativeBrowserView* browser_view) { native_view.hidden = NO; } -void NativeWindowMac::InternalSetParentWindow(NativeWindow* parent, bool attach) { - if (is_modal()) - return; - - NativeWindow::SetParentWindow(parent); - - // Do not remove/add if we are already properly attached. - if (attach && parent && [window_ parentWindow] == parent->GetNativeWindow()) - return; - - // Remove current parent window. - if ([window_ parentWindow]) - [[window_ parentWindow] removeChildWindow:window_]; - - // Set new parent window. - // Note that this method will force the window to become visible. - if (parent && attach) - [parent->GetNativeWindow() addChildWindow:window_ ordered:NSWindowAbove]; -} - void NativeWindowMac::SetParentWindow(NativeWindow* parent) { InternalSetParentWindow(parent, IsVisible()); } @@ -1576,7 +1556,7 @@ gfx::NativeView NativeWindowMac::GetNativeView() const { return inspectable_web_contents()->GetView()->GetNativeView(); } -gfx::NativeWindow NativeWindowMac::GetNativeWindow() { +gfx::NativeWindow NativeWindowMac::GetNativeWindow() const { return window_; } @@ -1818,6 +1798,26 @@ void NativeWindowMac::UpdateDraggableRegions( UpdateDraggableRegionViews(regions); } +void NativeWindowMac::InternalSetParentWindow(NativeWindow* parent, bool attach) { + if (is_modal()) + return; + + NativeWindow::SetParentWindow(parent); + + // Do not remove/add if we are already properly attached. + if (attach && parent && [window_ parentWindow] == parent->GetNativeWindow()) + return; + + // Remove current parent window. + if ([window_ parentWindow]) + [[window_ parentWindow] removeChildWindow:window_]; + + // Set new parent window. + // Note that this method will force the window to become visible. + if (parent && attach) + [parent->GetNativeWindow() addChildWindow:window_ ordered:NSWindowAbove]; +} + void NativeWindowMac::ShowWindowButton(NSWindowButton button) { auto view = [window_ standardWindowButton:button]; [view.superview addSubview:view positioned:NSWindowAbove relativeTo:nil];