add alwaysShowTitleTextInFullscreen flag

This commit is contained in:
Shubham 2017-06-17 20:45:29 -04:00
parent 493cfd38d6
commit 25c651c40a
5 changed files with 22 additions and 2 deletions

View file

@ -133,6 +133,9 @@ class NativeWindowMac : public NativeWindow,
bool zoom_to_page_width() const { return zoom_to_page_width_; } bool zoom_to_page_width() const { return zoom_to_page_width_; }
bool always_show_title_text_in_full_screen() const
{ return always_show_title_text_in_full_screen_; }
protected: protected:
// Return a vector of non-draggable regions that fill a window of size // Return a vector of non-draggable regions that fill a window of size
// |width| by |height|, but leave gaps where the window should be draggable. // |width| by |height|, but leave gaps where the window should be draggable.
@ -177,6 +180,8 @@ class NativeWindowMac : public NativeWindow,
bool zoom_to_page_width_; bool zoom_to_page_width_;
bool always_show_title_text_in_full_screen_;
NSInteger attention_request_id_; // identifier from requestUserAttention NSInteger attention_request_id_; // identifier from requestUserAttention
// The presentation options before entering kiosk mode. // The presentation options before entering kiosk mode.

View file

@ -340,11 +340,14 @@ bool ScopedDisableResize::disable_resize_ = false;
// titlebar is expected to be empty, but after entering fullscreen mode we // titlebar is expected to be empty, but after entering fullscreen mode we
// have to set one, because title bar is visible here. // have to set one, because title bar is visible here.
NSWindow* window = shell_->GetNativeWindow(); NSWindow* window = shell_->GetNativeWindow();
if ((shell_->transparent() || !shell_->has_frame()) && if ((shell_->transparent() || !shell_->has_frame()) &&
base::mac::IsAtLeastOS10_10() && base::mac::IsAtLeastOS10_10() &&
// FIXME(zcbenz): Showing titlebar for hiddenInset window is weird under // FIXME(zcbenz): Showing titlebar for hiddenInset window is weird under
// fullscreen mode. // fullscreen mode.
shell_->title_bar_style() != atom::NativeWindowMac::HIDDEN_INSET) { // Show title if always_show_title_text_in_full_screen flag is set
(shell_->title_bar_style() != atom::NativeWindowMac::HIDDEN_INSET ||
shell_->always_show_title_text_in_full_screen())) {
[window setTitleVisibility:NSWindowTitleVisible]; [window setTitleVisibility:NSWindowTitleVisible];
} }
@ -368,7 +371,8 @@ bool ScopedDisableResize::disable_resize_ = false;
NSWindow* window = shell_->GetNativeWindow(); NSWindow* window = shell_->GetNativeWindow();
if ((shell_->transparent() || !shell_->has_frame()) && if ((shell_->transparent() || !shell_->has_frame()) &&
base::mac::IsAtLeastOS10_10() && base::mac::IsAtLeastOS10_10() &&
shell_->title_bar_style() != atom::NativeWindowMac::HIDDEN_INSET) { (shell_->title_bar_style() != atom::NativeWindowMac::HIDDEN_INSET ||
shell_->always_show_title_text_in_full_screen())) {
[window setTitleVisibility:NSWindowTitleHidden]; [window setTitleVisibility:NSWindowTitleHidden];
} }
@ -798,6 +802,7 @@ NativeWindowMac::NativeWindowMac(
is_kiosk_(false), is_kiosk_(false),
was_fullscreen_(false), was_fullscreen_(false),
zoom_to_page_width_(false), zoom_to_page_width_(false),
always_show_title_text_in_full_screen_(false),
attention_request_id_(0), attention_request_id_(0),
title_bar_style_(NORMAL) { title_bar_style_(NORMAL) {
int width = 800, height = 600; int width = 800, height = 600;
@ -945,6 +950,8 @@ NativeWindowMac::NativeWindowMac(
options.Get(options::kZoomToPageWidth, &zoom_to_page_width_); options.Get(options::kZoomToPageWidth, &zoom_to_page_width_);
options.Get(options::kAlwaysShowTitleTextInFullscreen, &always_show_title_text_in_full_screen_);
// Enable the NSView to accept first mouse event. // Enable the NSView to accept first mouse event.
bool acceptsFirstMouse = false; bool acceptsFirstMouse = false;
options.Get(options::kAcceptFirstMouse, &acceptsFirstMouse); options.Get(options::kAcceptFirstMouse, &acceptsFirstMouse);

View file

@ -48,6 +48,10 @@ const char kUseContentSize[] = "useContentSize";
// Whether window zoom should be to page width. // Whether window zoom should be to page width.
const char kZoomToPageWidth[] = "zoomToPageWidth"; const char kZoomToPageWidth[] = "zoomToPageWidth";
// Whether always show title text in full screen is enabled.
const char kAlwaysShowTitleTextInFullscreen[] =
"alwaysShowTitleTextInFullscreen";
// The requested title bar style for the window // The requested title bar style for the window
const char kTitleBarStyle[] = "titleBarStyle"; const char kTitleBarStyle[] = "titleBarStyle";

View file

@ -35,6 +35,7 @@ extern const char kAlwaysOnTop[];
extern const char kAcceptFirstMouse[]; extern const char kAcceptFirstMouse[];
extern const char kUseContentSize[]; extern const char kUseContentSize[];
extern const char kZoomToPageWidth[]; extern const char kZoomToPageWidth[];
extern const char kAlwaysShowTitleTextInFullscreen[];
extern const char kTitleBarStyle[]; extern const char kTitleBarStyle[];
extern const char kTabbingIdentifier[]; extern const char kTabbingIdentifier[];
extern const char kAutoHideMenuBar[]; extern const char kAutoHideMenuBar[];

View file

@ -225,6 +225,9 @@ It creates a new `BrowserWindow` with native properties as set by the `options`.
display unless hovered over in the top left of the window. These custom display unless hovered over in the top left of the window. These custom
buttons prevent issues with mouse events that occur with the standard buttons prevent issues with mouse events that occur with the standard
window toolbar buttons. **Note:** This option is currently experimental. window toolbar buttons. **Note:** This option is currently experimental.
* `alwaysShowTitleTextInFullscreen` Boolean (optional) - Shows the title in
tile bar in full screen mode on macOS with all `titleBarStyle` options.
Default is `false`.
* `thickFrame` Boolean (optional) - Use `WS_THICKFRAME` style for frameless windows on * `thickFrame` Boolean (optional) - Use `WS_THICKFRAME` style for frameless windows on
Windows, which adds standard window frame. Setting it to `false` will remove Windows, which adds standard window frame. Setting it to `false` will remove
window shadow and window animations. Default is `true`. window shadow and window animations. Default is `true`.