From 102fb66461f6e5cecbe7ff824108ef23a3dd83a2 Mon Sep 17 00:00:00 2001 From: joshaber Date: Tue, 5 May 2015 20:53:26 -0400 Subject: [PATCH 1/4] Remove the textured background. --- atom/browser/native_window_mac.mm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/atom/browser/native_window_mac.mm b/atom/browser/native_window_mac.mm index 9071763e77f3..c58c1d6ce38d 100644 --- a/atom/browser/native_window_mac.mm +++ b/atom/browser/native_window_mac.mm @@ -313,8 +313,7 @@ NativeWindowMac::NativeWindowMac(content::WebContents* web_contents, window_.reset([[AtomNSWindow alloc] initWithContentRect:cocoa_bounds styleMask:NSTitledWindowMask | NSClosableWindowMask | - NSMiniaturizableWindowMask | NSResizableWindowMask | - NSTexturedBackgroundWindowMask + NSMiniaturizableWindowMask | NSResizableWindowMask backing:NSBackingStoreBuffered defer:YES]); [window_ setShell:this]; From 5f357d39b23a4fb06bfa081d5c75d84e99a43b14 Mon Sep 17 00:00:00 2001 From: joshaber Date: Wed, 6 May 2015 10:08:24 -0400 Subject: [PATCH 2/4] If it's frameless then use the textured background. --- atom/browser/native_window_mac.mm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/atom/browser/native_window_mac.mm b/atom/browser/native_window_mac.mm index c58c1d6ce38d..4dac6b75c9f6 100644 --- a/atom/browser/native_window_mac.mm +++ b/atom/browser/native_window_mac.mm @@ -310,10 +310,18 @@ NativeWindowMac::NativeWindowMac(content::WebContents* web_contents, width, height); + bool useFrame = true; + options.Get(switches::kFrame, &useFrame); + + NSUInteger styleMask = NSTitledWindowMask | NSClosableWindowMask | + NSMiniaturizableWindowMask | NSResizableWindowMask; + if (!useFrame) { + styleMask |= NSTexturedBackgroundWindowMask; + } + window_.reset([[AtomNSWindow alloc] initWithContentRect:cocoa_bounds - styleMask:NSTitledWindowMask | NSClosableWindowMask | - NSMiniaturizableWindowMask | NSResizableWindowMask + styleMask:styleMask backing:NSBackingStoreBuffered defer:YES]); [window_ setShell:this]; From 85119db81afb58729bfd66a282838e5780c73a15 Mon Sep 17 00:00:00 2001 From: joshaber Date: Fri, 8 May 2015 16:28:24 -0400 Subject: [PATCH 3/4] Use a new option to opt into the standard window. --- atom/browser/native_window_mac.mm | 6 +++--- atom/common/options_switches.cc | 3 +++ atom/common/options_switches.h | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/atom/browser/native_window_mac.mm b/atom/browser/native_window_mac.mm index 4dac6b75c9f6..70276c9a1cd1 100644 --- a/atom/browser/native_window_mac.mm +++ b/atom/browser/native_window_mac.mm @@ -310,12 +310,12 @@ NativeWindowMac::NativeWindowMac(content::WebContents* web_contents, width, height); - bool useFrame = true; - options.Get(switches::kFrame, &useFrame); + bool useStandardWindow = false; + options.Get(switches::kStandardWindow, &useStandardWindow); NSUInteger styleMask = NSTitledWindowMask | NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask; - if (!useFrame) { + if (!useStandardWindow) { styleMask |= NSTexturedBackgroundWindowMask; } diff --git a/atom/common/options_switches.cc b/atom/common/options_switches.cc index c479b5004d07..bfe34ee653ce 100644 --- a/atom/common/options_switches.cc +++ b/atom/common/options_switches.cc @@ -78,6 +78,9 @@ const char kType[] = "type"; // Disable auto-hiding cursor. const char kDisableAutoHideCursor[] = "disable-auto-hide-cursor"; +// Use the OS X's standard window instead of the textured window. +const char kStandardWindow[] = "standard-window"; + // Web runtime features. const char kExperimentalFeatures[] = "experimental-features"; const char kExperimentalCanvasFeatures[] = "experimental-canvas-features"; diff --git a/atom/common/options_switches.h b/atom/common/options_switches.h index 546c6a04eb4d..118271b6e994 100644 --- a/atom/common/options_switches.h +++ b/atom/common/options_switches.h @@ -42,6 +42,7 @@ extern const char kPreloadScript[]; extern const char kTransparent[]; extern const char kType[]; extern const char kDisableAutoHideCursor[]; +extern const char kStandardWindow[]; extern const char kExperimentalFeatures[]; extern const char kExperimentalCanvasFeatures[]; From c8d0ef05a64b7e903b40b23f01bc623abe681579 Mon Sep 17 00:00:00 2001 From: joshaber Date: Fri, 8 May 2015 16:33:57 -0400 Subject: [PATCH 4/4] Docs. --- docs/api/browser-window.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/api/browser-window.md b/docs/api/browser-window.md index 44021cabe939..d2854fc17014 100644 --- a/docs/api/browser-window.md +++ b/docs/api/browser-window.md @@ -72,6 +72,8 @@ You can also create a window without chrome by using * `type` String - Specifies the type of the window, possible types are `desktop`, `dock`, `toolbar`, `splash`, `notification`. This only works on Linux. + * `standard-window` Boolean - Use the OS X's standard window instead of the + textured window. Defaults to `false`. * `web-preferences` Object - Settings of web page's features * `javascript` Boolean * `web-security` Boolean