diff --git a/atom/browser/api/atom_api_window.cc b/atom/browser/api/atom_api_window.cc index 1caf3cd3fecc..02961f95f669 100644 --- a/atom/browser/api/atom_api_window.cc +++ b/atom/browser/api/atom_api_window.cc @@ -148,6 +148,10 @@ void Window::Unmaximize() { window_->Unmaximize(); } +bool Window::IsMaximized() { + return window_->IsMaximized(); +} + void Window::Minimize() { window_->Minimize(); } @@ -340,6 +344,7 @@ void Window::BuildPrototype(v8::Isolate* isolate, .SetMethod("isVisible", &Window::IsVisible) .SetMethod("maximize", &Window::Maximize) .SetMethod("unmaximize", &Window::Unmaximize) + .SetMethod("isMaximized", &Window::IsMaximized) .SetMethod("minimize", &Window::Minimize) .SetMethod("restore", &Window::Restore) .SetMethod("setFullScreen", &Window::SetFullscreen) diff --git a/atom/browser/api/atom_api_window.h b/atom/browser/api/atom_api_window.h index c9b2a5ff0056..91f9d333adb4 100644 --- a/atom/browser/api/atom_api_window.h +++ b/atom/browser/api/atom_api_window.h @@ -63,6 +63,7 @@ class Window : public mate::EventEmitter, bool IsVisible(); void Maximize(); void Unmaximize(); + bool IsMaximized(); void Minimize(); void Restore(); void SetFullscreen(bool fullscreen); diff --git a/atom/browser/native_window.h b/atom/browser/native_window.h index a211abdeabd3..f13b9d866e11 100644 --- a/atom/browser/native_window.h +++ b/atom/browser/native_window.h @@ -99,6 +99,7 @@ class NativeWindow : public brightray::DefaultWebContentsDelegate, virtual bool IsVisible() = 0; virtual void Maximize() = 0; virtual void Unmaximize() = 0; + virtual bool IsMaximized() = 0; virtual void Minimize() = 0; virtual void Restore() = 0; virtual void SetFullscreen(bool fullscreen) = 0; diff --git a/atom/browser/native_window_gtk.h b/atom/browser/native_window_gtk.h index 61dcdf92e9d1..63cbc7e35351 100644 --- a/atom/browser/native_window_gtk.h +++ b/atom/browser/native_window_gtk.h @@ -40,6 +40,7 @@ class NativeWindowGtk : public NativeWindow, virtual bool IsVisible() OVERRIDE; virtual void Maximize() OVERRIDE; virtual void Unmaximize() OVERRIDE; + virtual bool IsMaximized() OVERRIDE; virtual void Minimize() OVERRIDE; virtual void Restore() OVERRIDE; virtual void SetFullscreen(bool fullscreen) OVERRIDE; @@ -92,9 +93,6 @@ class NativeWindowGtk : public NativeWindow, // Set how font is renderered. void SetFontRenderering(); - // Whether window is maximized. - bool IsMaximized() const; - // If the point (|x|, |y|) is within the resize border area of the window, // returns true and sets |edge| to the appropriate GdkWindowEdge value. // Otherwise, returns false. diff --git a/atom/browser/native_window_mac.h b/atom/browser/native_window_mac.h index a57b24ce9dbd..16092065f230 100644 --- a/atom/browser/native_window_mac.h +++ b/atom/browser/native_window_mac.h @@ -32,6 +32,7 @@ class NativeWindowMac : public NativeWindow { virtual bool IsVisible() OVERRIDE; virtual void Maximize() OVERRIDE; virtual void Unmaximize() OVERRIDE; + virtual bool IsMaximized() OVERRIDE; virtual void Minimize() OVERRIDE; virtual void Restore() OVERRIDE; virtual void SetFullscreen(bool fullscreen) OVERRIDE; diff --git a/atom/browser/native_window_mac.mm b/atom/browser/native_window_mac.mm index e88491d8fd6f..154319845f13 100644 --- a/atom/browser/native_window_mac.mm +++ b/atom/browser/native_window_mac.mm @@ -279,6 +279,10 @@ void NativeWindowMac::Unmaximize() { [window_ zoom:nil]; } +bool NativeWindowMac::IsMaximized() { + return [window_ isZoomed]; +} + void NativeWindowMac::Minimize() { [window_ miniaturize:nil]; } diff --git a/atom/browser/native_window_win.cc b/atom/browser/native_window_win.cc index 3ba3daa91ad9..61464c9af9c3 100644 --- a/atom/browser/native_window_win.cc +++ b/atom/browser/native_window_win.cc @@ -294,6 +294,10 @@ void NativeWindowWin::Unmaximize() { window_->Restore(); } +bool NativeWindowWin::IsMaximized() { + return window_->IsMaximized(); +} + bool NativeWindowWin::IsVisible() { return window_->IsVisible(); } diff --git a/atom/browser/native_window_win.h b/atom/browser/native_window_win.h index 0a5047523fac..d38d28bdafc7 100644 --- a/atom/browser/native_window_win.h +++ b/atom/browser/native_window_win.h @@ -49,6 +49,7 @@ class NativeWindowWin : public NativeWindow, virtual bool IsVisible() OVERRIDE; virtual void Maximize() OVERRIDE; virtual void Unmaximize() OVERRIDE; + virtual bool IsMaximized() OVERRIDE; virtual void Minimize() OVERRIDE; virtual void Restore() OVERRIDE; virtual void SetFullscreen(bool fullscreen) OVERRIDE; diff --git a/docs/api/browser-window.md b/docs/api/browser-window.md index c5a0dc8329fa..57b89202400d 100644 --- a/docs/api/browser-window.md +++ b/docs/api/browser-window.md @@ -239,6 +239,10 @@ Maximizes the window. Unmaximizes the window. +### BrowserWindow.isMaximized() + +Returns whether the window is maximized. + ### BrowserWindow.minimize() Minimizes the window. On some platforms the minimized window will be shown in