mirror of
https://github.com/mpv-player/mpv
synced 2025-02-16 04:07:08 +00:00
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
This commit is contained in:
parent
3433f25697
commit
6a3ab66427
@ -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];
|
||||
|
Loading…
Reference in New Issue
Block a user