diff options
author | Akemi <der.richter@gmx.de> | 2016-12-15 22:12:46 +0100 |
---|---|---|
committer | Akemi <der.richter@gmx.de> | 2017-01-11 14:17:33 +0100 |
commit | 46b74a38f11e9ff2808fc151a329a260d4ac8d90 (patch) | |
tree | 6c05c8db33f5b76a9461f3a48d8a8b44c2a54cd5 /video/out/cocoa | |
parent | a05c5b4ec64da5630a29e9507357e662675e22e4 (diff) | |
download | mpv-46b74a38f11e9ff2808fc151a329a260d4ac8d90.tar.bz2 mpv-46b74a38f11e9ff2808fc151a329a260d4ac8d90.tar.xz |
cocoa: add border cycling
Fixes #2430
Diffstat (limited to 'video/out/cocoa')
-rw-r--r-- | video/out/cocoa/window.h | 1 | ||||
-rw-r--r-- | video/out/cocoa/window.m | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/video/out/cocoa/window.h b/video/out/cocoa/window.h index 485831a932..352eba61d6 100644 --- a/video/out/cocoa/window.h +++ b/video/out/cocoa/window.h @@ -27,4 +27,5 @@ - (BOOL)canBecomeKeyWindow; - (BOOL)canBecomeMainWindow; - (void)mulSize:(float)multiplier; +- (void)updateBorder:(int)border; @end diff --git a/video/out/cocoa/window.m b/video/out/cocoa/window.m index 68e5222a03..2bc7a5865a 100644 --- a/video/out/cocoa/window.m +++ b/video/out/cocoa/window.m @@ -212,6 +212,34 @@ [self.adapter putCommand:cmd]; } +- (void)updateBorder:(int)border +{ + int borderStyle = NSWindowStyleMaskTitled|NSWindowStyleMaskClosable| + NSWindowStyleMaskMiniaturizable; + if (border) { + int window_mask = [self styleMask] & ~NSWindowStyleMaskBorderless; + window_mask |= borderStyle; + [self setStyleMask:window_mask]; + } else { + int window_mask = [self styleMask] & ~borderStyle; + window_mask |= NSWindowStyleMaskBorderless; + [self setStyleMask:window_mask]; + } + + if (![self.adapter isInFullScreenMode]) { + // XXX: workaround to force redrawing of window decoration + if (border) { + NSRect frame = [self frame]; + frame.size.width += 1; + [self setFrame:frame display:YES]; + frame.size.width -= 1; + [self setFrame:frame display:YES]; + } + + [self setContentAspectRatio:_unfs_content_frame.size]; + } +} + - (NSRect)frameRect:(NSRect)f forCenteredContentSize:(NSSize)ns { NSRect cr = [self contentRectForFrameRect:f]; |