diff options
-rw-r--r-- | libvo/vo_corevideo.m | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/libvo/vo_corevideo.m b/libvo/vo_corevideo.m index aa7bffe310..fe6314ce5d 100644 --- a/libvo/vo_corevideo.m +++ b/libvo/vo_corevideo.m @@ -122,18 +122,17 @@ static void update_screen_info(void) screen_id = xinerama_screen; screen_array = [NSScreen screens]; - if(screen_id < (int)[screen_array count]) - { - screen_handle = [screen_array objectAtIndex:(screen_id < 0 ? 0 : screen_id)]; - } - else + if(screen_id >= (int)[screen_array count]) { mp_msg(MSGT_VO, MSGL_INFO, "[vo_corevideo] Device ID %d does not exist, falling back to main device\n", screen_id); - screen_handle = [screen_array objectAtIndex:0]; screen_id = -1; } + if (screen_id < 0 && [mpGLView window]) + screen_handle = [[mpGLView window] screen]; + else + screen_handle = [screen_array objectAtIndex:(screen_id < 0 ? 0 : screen_id)]; - screen_frame = ![mpGLView window] || screen_id >= 0 ? [screen_handle frame] : [[[mpGLView window] screen] frame]; + screen_frame = [screen_handle frame]; vo_screenwidth = screen_frame.size.width; vo_screenheight = screen_frame.size.height; xinerama_x = xinerama_y = 0; |