diff options
| author | Paul Rouget <me@paulrouget.com> | 2015-09-21 12:58:23 +0200 | 
|---|---|---|
| committer | Paul Rouget <me@paulrouget.com> | 2015-09-23 10:53:35 +0200 | 
| commit | 67a31c622140a27830f5b5c1bd4eabfc6c44a0a0 (patch) | |
| tree | 913a5902af036540d46b20e9a48b3d9f8bc239d3 /src/api/cocoa | |
| parent | 0f9693bde4d67e77fa3691a2c9d3ed0151abec71 (diff) | |
| download | glutin-67a31c622140a27830f5b5c1bd4eabfc6c44a0a0.tar.gz glutin-67a31c622140a27830f5b5c1bd4eabfc6c44a0a0.zip  | |
Use NSFullSizeContentViewWindowMask for decoration-less windows
Diffstat (limited to 'src/api/cocoa')
| -rw-r--r-- | src/api/cocoa/mod.rs | 32 | 
1 files changed, 24 insertions, 8 deletions
diff --git a/src/api/cocoa/mod.rs b/src/api/cocoa/mod.rs index 539545c..f602f1f 100644 --- a/src/api/cocoa/mod.rs +++ b/src/api/cocoa/mod.rs @@ -399,14 +399,24 @@ impl Window {                  }              }; -            let masks = if screen.is_some() || !attrs.decorations { -                NSBorderlessWindowMask as NSUInteger | -                NSResizableWindowMask as NSUInteger -            } else { -                NSTitledWindowMask as NSUInteger | -                NSClosableWindowMask as NSUInteger | -                NSMiniaturizableWindowMask as NSUInteger | -                NSResizableWindowMask as NSUInteger +            let masks = match (attrs.decorations, attrs.transparent) { +                (true, false) => +                    // Classic opaque window with titlebar +                    NSClosableWindowMask as NSUInteger | +                    NSMiniaturizableWindowMask as NSUInteger | +                    NSResizableWindowMask as NSUInteger | +                    NSTitledWindowMask as NSUInteger, +                (false, false) => +                    // Opaque window without a titlebar +                    NSClosableWindowMask as NSUInteger | +                    NSMiniaturizableWindowMask as NSUInteger | +                    NSResizableWindowMask as NSUInteger | +                    NSTitledWindowMask as NSUInteger | +                    NSFullSizeContentViewWindowMask as NSUInteger, +                (_, true) => +                    // Fully transparent window. +                    // No shadow, decorations or borders. +                    NSBorderlessWindowMask as NSUInteger              };              let window = IdRef::new(NSWindow::alloc(nil).initWithContentRect_styleMask_backing_defer_( @@ -419,6 +429,12 @@ impl Window {                  let title = IdRef::new(NSString::alloc(nil).init_str(&attrs.title));                  window.setTitle_(*title);                  window.setAcceptsMouseMovedEvents_(YES); + +                if !attrs.decorations { +                    window.setTitleVisibility_(NSWindowTitleVisibility::NSWindowTitleHidden); +                    window.setTitlebarAppearsTransparent_(YES); +                } +                  if screen.is_some() {                      window.setLevel_(NSMainMenuWindowLevel as i64 + 1);                  }  | 
