BOOL b_has_active_video;
/*
- * normal fullscreen: YES when all animations are over
- * lion fullscreen: toggled when fs animation starts
+ * YES when all animations are over
* for fullscreen window: always YES
*/
BOOL b_fullscreen;
NSInteger i_originalLevel;
NSTimer *t_hide_mouse_timer;
+
+ // true when the window is in transition for entering lion fullscreen
+ BOOL b_entering_fullscreen_transition;
}
@property (nonatomic, assign) VLCVoutView* videoView;
@property (readonly) VLCControlsBarCommon* controlsBar;
+@property (readonly) BOOL enteringFullscreenTransition;
- (void)setWindowLevel:(NSInteger)i_state;
@synthesize videoView=o_video_view;
@synthesize controlsBar=o_controls_bar;
+@synthesize enteringFullscreenTransition=b_entering_fullscreen_transition;
#pragma mark -
#pragma mark Init
return proposedFrameSize;
// needed when entering lion fullscreen mode
- if ([self fullscreen])
+ if (b_entering_fullscreen_transition || [self fullscreen])
return proposedFrameSize;
if ([[VLCCoreInteraction sharedInstance] aspectRatioIsLocked]) {
// workaround, see #6668
[NSApp setPresentationOptions:(NSApplicationPresentationFullScreen | NSApplicationPresentationAutoHideDock | NSApplicationPresentationAutoHideMenuBar)];
- [self setFullscreen: YES];
+ b_entering_fullscreen_transition = YES;
var_SetBool(pl_Get(VLCIntf), "fullscreen", true);
// But this creates some problems when leaving fs over remote intfs, so activate app here.
[NSApp activateIgnoringOtherApps:YES];
+ [self setFullscreen: YES];
+ b_entering_fullscreen_transition = NO;
+
if ([self hasActiveVideo]) {
[[[VLCMainWindow sharedInstance] fsPanel] setVoutWasUpdated: self];
[[[VLCMainWindow sharedInstance] fsPanel] setActive: nil];
// fullscreen might be triggered twice (vout event)
// so ignore duplicate events here
- if((b_fullscreen && ![o_active_window fullscreen]) ||
+ if((b_fullscreen && !([o_active_window fullscreen] || [o_active_window enteringFullscreenTransition])) ||
(!b_fullscreen && [o_active_window fullscreen])) {
[o_active_window toggleFullScreen:self];