X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fvideo_output%2Fmacosx.m;h=17f697d4b1e4769bac40a0602765bf4d01c47641;hb=adc35019701701eec7a6f91128103fc462ce3b3b;hp=553890e7ac9ad4d71b14beb39c91a910f1061e9d;hpb=734e6179eaf42652649248b2d5bdadec93355eac;p=vlc diff --git a/modules/video_output/macosx.m b/modules/video_output/macosx.m index 553890e7ac..17f697d4b1 100644 --- a/modules/video_output/macosx.m +++ b/modules/video_output/macosx.m @@ -47,6 +47,13 @@ #include #include "opengl.h" +#ifndef MAC_OS_X_VERSION_10_7 +enum { + NSApplicationPresentationFullScreen = (1 << 10), + NSApplicationPresentationAutoHideToolbar = (1 << 11) +}; +#endif + /** * Forward declarations */ @@ -200,8 +207,10 @@ static int Open(vlc_object_t *this) sys->gl.swap = OpenglSwap; sys->gl.getProcAddress = NULL; sys->gl.sys = sys; + const vlc_fourcc_t *subpicture_chromas; + video_format_t fmt = vd->fmt; - sys->vgl = vout_display_opengl_New(&vd->fmt, NULL, &sys->gl); + sys->vgl = vout_display_opengl_New(&vd->fmt, &subpicture_chromas, &sys->gl); if (!sys->vgl) { sys->gl.sys = NULL; @@ -211,6 +220,8 @@ static int Open(vlc_object_t *this) /* */ vout_display_info_t info = vd->info; info.has_pictures_invalid = false; + info.has_event_thread = true; + info.subpicture_chromas = subpicture_chromas; /* Setup vout_display_t once everything is fine */ vd->info = info; @@ -314,7 +325,7 @@ static int Control (vout_display_t *vd, int query, va_list ap) } case VOUT_DISPLAY_CHANGE_DISPLAY_FILLED: { - [[sys->glView window] performSelectorOnMainThread:@selector(performZoom:) withObject: nil waitUntilDone:NO]; + [[sys->glView window] performSelectorOnMainThread:@selector(zoom:) withObject: nil waitUntilDone:NO]; return VLC_SUCCESS; } case VOUT_DISPLAY_CHANGE_DISPLAY_SIZE: @@ -322,6 +333,7 @@ static int Control (vout_display_t *vd, int query, va_list ap) case VOUT_DISPLAY_CHANGE_SOURCE_ASPECT: case VOUT_DISPLAY_CHANGE_SOURCE_CROP: { + NSAutoreleasePool * o_pool = [[NSAutoreleasePool alloc] init]; NSPoint topleftbase; NSPoint topleftscreen; NSRect new_frame; @@ -357,6 +369,7 @@ static int Control (vout_display_t *vd, int query, va_list ap) [sys->glView performSelectorOnMainThread:@selector(setWindowFrameWithValue:) withObject:[NSValue valueWithRect:new_frame] waitUntilDone:NO]; } + [o_pool release]; return VLC_SUCCESS; } @@ -477,10 +490,13 @@ static void OpenglSwap(vlc_gl_t *gl) */ - (void)setWindowFrameWithValue:(NSValue *)value { - NSRect frame = [value rectValue]; - if (frame.origin.x <= 0.0 && frame.origin.y <= 0.0) - [[self window] center]; - [[self window] setFrame:frame display:YES animate: YES]; + if (!(NSAppKitVersionNumber >= 1115.2 && [NSApp currentSystemPresentationOptions] == NSApplicationPresentationFullScreen)) + { + NSRect frame = [value rectValue]; + if (frame.origin.x <= 0.0 && frame.origin.y <= 0.0) + [[self window] center]; + [[self window] setFrame:frame display:YES animate: YES]; + } } /**