From 5336b4a89c33cf5de5ef0b6347111b523c13c62c Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Tue, 27 Feb 2018 16:11:54 +1100 Subject: [PATCH] Pass arguments instance through the chain in order to throw error --- atom/browser/api/atom_api_browser_window.cc | 9 +++++++-- atom/browser/api/atom_api_browser_window.h | 2 +- atom/browser/native_window.cc | 2 +- atom/browser/native_window.h | 2 +- atom/browser/native_window_mac.h | 2 +- atom/browser/native_window_mac.mm | 5 +++-- 6 files changed, 14 insertions(+), 8 deletions(-) diff --git a/atom/browser/api/atom_api_browser_window.cc b/atom/browser/api/atom_api_browser_window.cc index 6a6e4f02c443..0812c61f5572 100644 --- a/atom/browser/api/atom_api_browser_window.cc +++ b/atom/browser/api/atom_api_browser_window.cc @@ -1082,8 +1082,13 @@ void BrowserWindow::ToggleTabBar() { window_->ToggleTabBar(); } -void BrowserWindow::AddTabbedWindow(NativeWindow* window) { - window_->AddTabbedWindow(window); +void BrowserWindow::AddTabbedWindow(mate::Arguments* args) { + NativeWindow* window; + if (!args->GetNext(&window)) { + args->ThrowError("Insert good error message here"); + return; + } + window_->AddTabbedWindow(window, args); } void BrowserWindow::SetVibrancy(mate::Arguments* args) { diff --git a/atom/browser/api/atom_api_browser_window.h b/atom/browser/api/atom_api_browser_window.h index 65f3a10f7ad9..55f0edcd07e6 100644 --- a/atom/browser/api/atom_api_browser_window.h +++ b/atom/browser/api/atom_api_browser_window.h @@ -243,7 +243,7 @@ class BrowserWindow : public mate::TrackableObject, void MergeAllWindows(); void MoveTabToNewWindow(); void ToggleTabBar(); - void AddTabbedWindow(NativeWindow* window); + void AddTabbedWindow(mate::Arguments* args); void SetVibrancy(mate::Arguments* args); void SetTouchBar(const std::vector& items); diff --git a/atom/browser/native_window.cc b/atom/browser/native_window.cc index a96b65424a90..8cdb6dd6c7a9 100644 --- a/atom/browser/native_window.cc +++ b/atom/browser/native_window.cc @@ -336,7 +336,7 @@ void NativeWindow::MoveTabToNewWindow() { void NativeWindow::ToggleTabBar() { } -void NativeWindow::AddTabbedWindow(NativeWindow* window) { +void NativeWindow::AddTabbedWindow(NativeWindow* window, mate::Arguments* args) { } void NativeWindow::SetVibrancy(const std::string& filename) { diff --git a/atom/browser/native_window.h b/atom/browser/native_window.h index 5661f6237d17..1a79a9d081d8 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); + virtual void AddTabbedWindow(NativeWindow* window, mate::Arguments* args); // Webview APIs. virtual void FocusOnWebView(); diff --git a/atom/browser/native_window_mac.h b/atom/browser/native_window_mac.h index a54e24b4668c..d7cd36334846 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) override; + void AddTabbedWindow(NativeWindow* window, mate::Arguments* args) 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 30cc66d6f287..8a062c4c846f 100644 --- a/atom/browser/native_window_mac.mm +++ b/atom/browser/native_window_mac.mm @@ -918,6 +918,7 @@ NativeWindowMac::NativeWindowMac( } if (transparent()) { + NSLog(@"Setting transparent"); // Setting the background color to clear will also hide the shadow. [window_ setBackgroundColor:[NSColor clearColor]]; } @@ -1671,9 +1672,9 @@ void NativeWindowMac::ToggleTabBar() { } } -void NativeWindowMac::AddTabbedWindow(NativeWindow* window) { +void NativeWindowMac::AddTabbedWindow(NativeWindow* window, mate::Arguments* args) { if (window_.get() == window->GetNativeWindow()) { - NSLog(@"Error: AddTabbedWindow cannot be called by a window on itself."); + args->ThrowError("AddTabbedWindow cannot be called by a window on itself"); } else { if ([window_ respondsToSelector:@selector(addTabbedWindow:ordered:)]) { [window_ addTabbedWindow:window->GetNativeWindow() ordered:NSWindowAbove];