summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefano Pigozzi <stefano.pigozzi@gmail.com>2014-01-11 13:56:10 +0100
committerwm4 <wm4@nowhere>2014-01-15 20:53:19 +0100
commit8fe636da7ae03193743f1a8dcef0c4da59eb69a6 (patch)
tree87dd10d7abc9b493a0db5f53baa62cd6fefb410c
parent812f149585e224918c5e9723065fb4571ffb9b80 (diff)
downloadmpv-8fe636da7ae03193743f1a8dcef0c4da59eb69a6.tar.bz2
mpv-8fe636da7ae03193743f1a8dcef0c4da59eb69a6.tar.xz
cocoa: fix window placement on secondary screens
For a long time the cocoa backend set the xinerama_x/y and used dx/dy from the VO instance. This somewhat worked with some workarounds but wasn't really what was supposed to be happening. Moreover 27e4360, which touched this workaround introduced a regression. New code doesn't set the xinerama_x/y values so that dx/dy are offsets in the current screen (not a virtual screen composed of all the screens). The screen reference detected during VOCTRL_UPDATE_SCREENINFO is also passed down to the window initialization code. Fixes #472
-rw-r--r--video/out/cocoa_common.m5
1 files changed, 2 insertions, 3 deletions
diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m
index cb14d6abe8..7784849cbf 100644
--- a/video/out/cocoa_common.m
+++ b/video/out/cocoa_common.m
@@ -221,8 +221,6 @@ static void vo_cocoa_update_screen_info(struct vo *vo)
aspect_save_screenres(vo, r.size.width, r.size.height);
opts->screenwidth = r.size.width;
opts->screenheight = r.size.height;
- vo->xinerama_x = r.origin.x;
- vo->xinerama_y = r.origin.y;
}
static void resize_window(struct vo *vo)
@@ -276,7 +274,8 @@ static void create_window(struct vo *vo, uint32_t d_width, uint32_t d_height,
[[MpvVideoWindow alloc] initWithContentRect:contentRect
styleMask:window_mask
backing:NSBackingStoreBuffered
- defer:NO];
+ defer:NO
+ screen:s->current_screen];
s->view = [[[MpvVideoView alloc] initWithFrame:contentRect] autorelease];
[s->view setWantsBestResolutionOpenGLSurface:YES];