summaryrefslogtreecommitdiffstats
path: root/video/out/cocoa
diff options
context:
space:
mode:
authorAkemi <der.richter@gmx.de>2016-12-15 22:12:46 +0100
committerAkemi <der.richter@gmx.de>2017-01-11 14:17:33 +0100
commit46b74a38f11e9ff2808fc151a329a260d4ac8d90 (patch)
tree6c05c8db33f5b76a9461f3a48d8a8b44c2a54cd5 /video/out/cocoa
parenta05c5b4ec64da5630a29e9507357e662675e22e4 (diff)
downloadmpv-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.h1
-rw-r--r--video/out/cocoa/window.m28
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];