From 6a3ab66427cd90e3cb558b0e7b072dd059fc23f3 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi Date: Sat, 11 Jan 2014 13:56:10 +0100 Subject: 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 --- video/out/cocoa_common.m | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) (limited to 'video') diff --git a/video/out/cocoa_common.m b/video/out/cocoa_common.m index 377dd76ce6..2f50102257 100644 --- a/video/out/cocoa_common.m +++ b/video/out/cocoa_common.m @@ -222,8 +222,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) @@ -277,7 +275,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]; -- cgit v1.2.3