From 51f1c5a5576a0bef3f56e7f6d021ba335b1d2941 Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Wed, 1 Mar 2017 11:05:34 -0800 Subject: [PATCH] Use SetTouchBar withe empty vector instead of DestroyTouchBar --- atom/browser/api/atom_api_window.cc | 7 +------ atom/browser/api/atom_api_window.h | 1 - atom/browser/native_window.cc | 3 --- atom/browser/native_window.h | 1 - atom/browser/native_window_mac.h | 1 - atom/browser/native_window_mac.mm | 5 ----- lib/browser/api/browser-window.js | 14 +++++++------- lib/browser/api/touch-bar.js | 4 +++- 8 files changed, 11 insertions(+), 25 deletions(-) diff --git a/atom/browser/api/atom_api_window.cc b/atom/browser/api/atom_api_window.cc index fbfba8a..6748c9c 100644 --- a/atom/browser/api/atom_api_window.cc +++ b/atom/browser/api/atom_api_window.cc @@ -845,10 +845,6 @@ void Window::SetVibrancy(mate::Arguments* args) { window_->SetVibrancy(type); } -void Window::DestroyTouchBar() { - window_->DestroyTouchBar(); -} - void Window::SetTouchBar(const std::vector& items) { window_->SetTouchBar(items); } @@ -977,8 +973,7 @@ void Window::BuildPrototype(v8::Isolate* isolate, .SetMethod("setAutoHideCursor", &Window::SetAutoHideCursor) #endif .SetMethod("setVibrancy", &Window::SetVibrancy) - .SetMethod("_destroyTouchBar", &Window::DestroyTouchBar) - .SetMethod("_setTouchBar", &Window::SetTouchBar) + .SetMethod("_setTouchBarItems", &Window::SetTouchBar) .SetMethod("_refreshTouchBarItem", &Window::RefreshTouchBarItem) #if defined(OS_WIN) .SetMethod("hookWindowMessage", &Window::HookWindowMessage) diff --git a/atom/browser/api/atom_api_window.h b/atom/browser/api/atom_api_window.h index b8060c3..f30baf7 100644 --- a/atom/browser/api/atom_api_window.h +++ b/atom/browser/api/atom_api_window.h @@ -206,7 +206,6 @@ class Window : public mate::TrackableObject, void SetAutoHideCursor(bool auto_hide); void SetVibrancy(mate::Arguments* args); - void DestroyTouchBar(); void SetTouchBar(const std::vector& items); void RefreshTouchBarItem(const std::string& item_id); diff --git a/atom/browser/native_window.cc b/atom/browser/native_window.cc index 49c08f5..90a823f 100644 --- a/atom/browser/native_window.cc +++ b/atom/browser/native_window.cc @@ -340,9 +340,6 @@ void NativeWindow::SetAutoHideCursor(bool auto_hide) { void NativeWindow::SetVibrancy(const std::string& filename) { } -void NativeWindow::DestroyTouchBar() { -} - void NativeWindow::SetTouchBar( const std::vector& items) { } diff --git a/atom/browser/native_window.h b/atom/browser/native_window.h index 69b2f50..941f584 100644 --- a/atom/browser/native_window.h +++ b/atom/browser/native_window.h @@ -171,7 +171,6 @@ class NativeWindow : public base::SupportsUserData, virtual void SetVibrancy(const std::string& type); // Touchbar API - virtual void DestroyTouchBar(); virtual void SetTouchBar( const std::vector& items); virtual void RefreshTouchBarItem(const std::string& item_id); diff --git a/atom/browser/native_window_mac.h b/atom/browser/native_window_mac.h index 388ea28..03430af 100644 --- a/atom/browser/native_window_mac.h +++ b/atom/browser/native_window_mac.h @@ -100,7 +100,6 @@ class NativeWindowMac : public NativeWindow, void SetAutoHideCursor(bool auto_hide) override; void SetVibrancy(const std::string& type) override; - void DestroyTouchBar() override; void SetTouchBar( const std::vector& items) override; void RefreshTouchBarItem(const std::string& item_id) override; diff --git a/atom/browser/native_window_mac.mm b/atom/browser/native_window_mac.mm index 71fdef9..b3ab36e 100644 --- a/atom/browser/native_window_mac.mm +++ b/atom/browser/native_window_mac.mm @@ -1372,11 +1372,6 @@ void NativeWindowMac::SetVibrancy(const std::string& type) { [effect_view setMaterial:vibrancyType]; } -void NativeWindowMac::DestroyTouchBar() { - touch_bar_items_.clear(); - [window_ resetTouchBar]; -} - void NativeWindowMac::SetTouchBar( const std::vector& items) { touch_bar_items_ = items; diff --git a/lib/browser/api/browser-window.js b/lib/browser/api/browser-window.js index aa38728..3c936d2 100644 --- a/lib/browser/api/browser-window.js +++ b/lib/browser/api/browser-window.js @@ -199,20 +199,20 @@ Object.assign(BrowserWindow.prototype, { // TouchBar API setTouchBar (touchBar) { + // This property is set from within TouchBar + if (this._touchBar != null) { + this._touchBar._removeFromWindow(this) + } + if (touchBar == null) { - if (this._touchBar != null) { - this._touchBar._removeFromWindow(this) - } - this._destroyTouchBar() + this._setTouchBarItems([]) return } if (Array.isArray(touchBar)) { touchBar = new TouchBar(touchBar) } - - this._touchBar = touchBar - this._touchBar._addToWindow(this) + touchBar._addToWindow(this) } }) diff --git a/lib/browser/api/touch-bar.js b/lib/browser/api/touch-bar.js index 2028524..6f6a31f 100644 --- a/lib/browser/api/touch-bar.js +++ b/lib/browser/api/touch-bar.js @@ -38,6 +38,8 @@ class TouchBar extends EventEmitter { // Already added to window if (this.windowListeners.hasOwnProperty(id)) return + window._touchBar = this + const changeListener = (itemID) => { window._refreshTouchBarItem(itemID) } @@ -61,7 +63,7 @@ class TouchBar extends EventEmitter { window.once('closed', removeListeners) this.windowListeners[id] = removeListeners - window._setTouchBar(this.ordereredItems) + window._setTouchBarItems(this.ordereredItems) } // Called by BrowserWindow.setTouchBar -- 2.7.4