From 2abc69780e1bdd62b33250fd291a5c70c02790fa Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Tue, 27 Feb 2018 13:00:42 -0800 Subject: [PATCH] move native-mate back into the api layer --- atom/browser/api/atom_api_browser_window.cc | 4 +++- atom/browser/native_window.cc | 4 ++-- atom/browser/native_window.h | 2 +- atom/browser/native_window_mac.h | 2 +- atom/browser/native_window_mac.mm | 8 ++++---- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/atom/browser/api/atom_api_browser_window.cc b/atom/browser/api/atom_api_browser_window.cc index b469503fd1..6e7c146b19 100644 --- a/atom/browser/api/atom_api_browser_window.cc +++ b/atom/browser/api/atom_api_browser_window.cc @@ -1084,7 +1084,9 @@ void BrowserWindow::ToggleTabBar() { void BrowserWindow::AddTabbedWindow(NativeWindow* window, mate::Arguments* args) { - window_->AddTabbedWindow(window, args); + const bool windowAdded = window_->AddTabbedWindow(window); + if (!windowAdded) + args->ThrowError("AddTabbedWindow cannot be called by a window on itself"); } void BrowserWindow::SetVibrancy(mate::Arguments* args) { diff --git a/atom/browser/native_window.cc b/atom/browser/native_window.cc index 78c8ed3e6d..1222151248 100644 --- a/atom/browser/native_window.cc +++ b/atom/browser/native_window.cc @@ -336,8 +336,8 @@ void NativeWindow::MoveTabToNewWindow() { void NativeWindow::ToggleTabBar() { } -void NativeWindow::AddTabbedWindow(NativeWindow* window, - mate::Arguments* args) { +bool NativeWindow::AddTabbedWindow(NativeWindow* window) { + return true; // for non-Mac platforms } void NativeWindow::SetVibrancy(const std::string& filename) { diff --git a/atom/browser/native_window.h b/atom/browser/native_window.h index 1a79a9d081..7f12f5a23b 100644 --- a/atom/browser/native_window.h +++ b/atom/browser/native_window.h @@ -192,7 +192,7 @@ class NativeWindow : public base::SupportsUserData, virtual void MergeAllWindows(); virtual void MoveTabToNewWindow(); virtual void ToggleTabBar(); - virtual void AddTabbedWindow(NativeWindow* window, mate::Arguments* args); + virtual bool AddTabbedWindow(NativeWindow* window); // Webview APIs. virtual void FocusOnWebView(); diff --git a/atom/browser/native_window_mac.h b/atom/browser/native_window_mac.h index d7cd363348..2d856aa9a9 100644 --- a/atom/browser/native_window_mac.h +++ b/atom/browser/native_window_mac.h @@ -109,7 +109,7 @@ class NativeWindowMac : public NativeWindow { void MergeAllWindows() override; void MoveTabToNewWindow() override; void ToggleTabBar() override; - void AddTabbedWindow(NativeWindow* window, mate::Arguments* args) override; + bool AddTabbedWindow(NativeWindow* window) override; void SetVibrancy(const std::string& type) override; void SetTouchBar( diff --git a/atom/browser/native_window_mac.mm b/atom/browser/native_window_mac.mm index 8a062c4c84..ab3ecb3fd8 100644 --- a/atom/browser/native_window_mac.mm +++ b/atom/browser/native_window_mac.mm @@ -1672,14 +1672,14 @@ void NativeWindowMac::ToggleTabBar() { } } -void NativeWindowMac::AddTabbedWindow(NativeWindow* window, mate::Arguments* args) { +bool NativeWindowMac::AddTabbedWindow(NativeWindow* window) { if (window_.get() == window->GetNativeWindow()) { - args->ThrowError("AddTabbedWindow cannot be called by a window on itself"); + return false; } else { - if ([window_ respondsToSelector:@selector(addTabbedWindow:ordered:)]) { + if ([window_ respondsToSelector:@selector(addTabbedWindow:ordered:)]) [window_ addTabbedWindow:window->GetNativeWindow() ordered:NSWindowAbove]; - } } + return true; } void NativeWindowMac::SetRenderWidgetHostOpaque(bool opaque) {