Window::Window(v8::Isolate* isolate, const mate::Dictionary& options)
- : disable_count_(0),
- is_modal_(false) {
+ : is_modal_(false) {
// Use options.webPreferences to create WebContents.
mate::Dictionary web_preferences = mate::Dictionary::CreateEmpty(isolate);
options.Get(options::kWebPreferences, &web_preferences);
}
void Window::Disable() {
- ++disable_count_;
- if (disable_count_ == 1)
- window_->Disable();
+ window_->Disable();
}
void Window::Enable() {
- --disable_count_;
- if (disable_count_ == 0)
- window_->Enable();
+ window_->Enable();
}
bool Window::IsEnabled() {
v8::Global<v8::Value> parent_window_;
KeyWeakMap<int> child_windows_;
- // How many times the Disable has been called.
- int disable_count_;
-
// Is current window modal.
bool is_modal_;
sheet_offset_x_(0.0),
sheet_offset_y_(0.0),
aspect_ratio_(0.0),
+ disable_count_(0),
inspectable_web_contents_(inspectable_web_contents),
weak_factory_(this) {
options.Get(options::kFrame, &has_frame_);
Show();
}
+void NativeWindow::Disable() {
+ ++disable_count_;
+ if (disable_count_ == 1)
+ SetEnabled(false);
+}
+
+void NativeWindow::Enable() {
+ --disable_count_;
+ if (disable_count_ == 0)
+ SetEnabled(true);
+}
+
void NativeWindow::SetSize(const gfx::Size& size, bool animate) {
SetBounds(gfx::Rect(GetPosition(), size), animate);
}
virtual void ShowInactive() = 0;
virtual void Hide() = 0;
virtual bool IsVisible() = 0;
- virtual void Disable() = 0;
- virtual void Enable() = 0;
+ virtual void Disable();
+ virtual void Enable();
+ virtual void SetEnabled(bool enable) = 0; // should not be used
virtual bool IsEnabled() = 0;
virtual void Maximize() = 0;
virtual void Unmaximize() = 0;
double aspect_ratio_;
gfx::Size aspect_ratio_extraSize_;
+ // How many times the Disable has been called.
+ int disable_count_;
+
// The page this window is viewing.
brightray::InspectableWebContents* inspectable_web_contents_;
void ShowInactive() override;
void Hide() override;
bool IsVisible() override;
- void Disable() override;
- void Enable() override;
+ void SetEnabled(bool enable) override;
bool IsEnabled() override;
void Maximize() override;
void Unmaximize() override;
return [window_ isVisible];
}
-void NativeWindowMac::Disable() {
- [window_ setDisableKeyOrMainWindow:YES];
- [window_ setDisableMouseEvents:YES];
-}
-
-void NativeWindowMac::Enable() {
- [window_ setDisableKeyOrMainWindow:NO];
- [window_ setDisableMouseEvents:NO];
+void NativeWindowMac::SetEnabled(bool enable) {
+ [window_ setDisableKeyOrMainWindow:!enable];
+ [window_ setDisableMouseEvents:!enable];
}
bool NativeWindowMac::IsEnabled() {
return window_->IsVisible();
}
-void NativeWindowViews::Disable() {
+void NativeWindowViews::SetEnabled(bool enable) {
#if defined(OS_WIN)
- ::EnableWindow(GetAcceleratedWidget(), FALSE);
+ ::EnableWindow(GetAcceleratedWidget(), enable);
#elif defined(USE_X11)
- event_disabler_.reset(new EventDisabler);
views::DesktopWindowTreeHostX11* tree_host =
views::DesktopWindowTreeHostX11::GetHostForXID(GetAcceleratedWidget());
- tree_host->AddEventRewriter(event_disabler_.get());
-#endif
-}
-
-void NativeWindowViews::Enable() {
-#if defined(OS_WIN)
- ::EnableWindow(GetAcceleratedWidget(), TRUE);
-#elif defined(USE_X11)
- views::DesktopWindowTreeHostX11* tree_host =
- views::DesktopWindowTreeHostX11::GetHostForXID(GetAcceleratedWidget());
- tree_host->RemoveEventRewriter(event_disabler_.get());
- event_disabler_.reset();
+ if (enable) {
+ tree_host->RemoveEventRewriter(event_disabler_.get());
+ event_disabler_.reset();
+ } else {
+ event_disabler_.reset(new EventDisabler);
+ tree_host->AddEventRewriter(event_disabler_.get());
+ }
#endif
}
void ShowInactive() override;
void Hide() override;
bool IsVisible() override;
- void Disable() override;
- void Enable() override;
+ void SetEnabled(bool enable) override;
bool IsEnabled() override;
void Maximize() override;
void Unmaximize() override;