diff --git a/atom/browser/api/atom_api_window.cc b/atom/browser/api/atom_api_window.cc index fbfba8a9e698..6748c9c0dd1d 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 b8060c3f47cf..f30baf79d4df 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 49c08f5d4b09..90a823f80b65 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 69b2f50962de..941f5849a65c 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 388ea282c07f..03430af57cc5 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 71fdef991551..b3ab36ed31f4 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 aa3872870e8b..3c936d2af500 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 20285246c36b..6f6a31fd25ae 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