From 834670aa5a382032340f77f2ea03b03dc1977cbb Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20Paul=20K=C3=BChne?= Date: Fri, 28 Mar 2008 12:47:44 +0100 Subject: [PATCH] Fixed 'Blackout screens' on multi-screen setups --- modules/gui/macosx/embeddedwindow.m | 9 +++++---- modules/gui/macosx/misc.m | 23 +++++++++++++++-------- modules/gui/macosx/vout.m | 2 +- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/modules/gui/macosx/embeddedwindow.m b/modules/gui/macosx/embeddedwindow.m index b9f22cd82b..582f8ac7c9 100644 --- a/modules/gui/macosx/embeddedwindow.m +++ b/modules/gui/macosx/embeddedwindow.m @@ -1,10 +1,11 @@ /***************************************************************************** * embeddedwindow.m: MacOS X interface module ***************************************************************************** - * Copyright (C) 2005-2007 the VideoLAN team + * Copyright (C) 2005-2008 the VideoLAN team * $Id$ * * Authors: Benjamin Pracht + * Felix Paul Kühne * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -193,7 +194,7 @@ NSRect screen_rect; NSRect rect; vout_thread_t *p_vout = vlc_object_find( VLCIntf, VLC_OBJECT_VOUT, FIND_ANYWHERE ); - BOOL blackout_other_displays = var_GetBool( p_vout, "macosx-black" ); + BOOL blackout_other_displays = config_GetInt( VLCIntf, "macosx-black" ); screen = [NSScreen screenWithDisplayID:(CGDirectDisplayID)var_GetInteger( p_vout, "video-device" )]; @@ -213,8 +214,8 @@ [NSCursor setHiddenUntilMouseMoves: YES]; - if (blackout_other_displays) - [screen blackoutOtherScreens]; /* We should do something like [screen blackoutOtherScreens]; */ + if( blackout_other_displays ) + [screen blackoutOtherScreens]; /* Only create the o_fullscreen_window if we are not in the middle of the zooming animation */ if (!o_fullscreen_window) diff --git a/modules/gui/macosx/misc.m b/modules/gui/macosx/misc.m index 7034a73b78..121ec7ba05 100644 --- a/modules/gui/macosx/misc.m +++ b/modules/gui/macosx/misc.m @@ -1,10 +1,11 @@ /***************************************************************************** * misc.m: code not specific to vlc ***************************************************************************** - * Copyright (C) 2003-2007 the VideoLAN team + * Copyright (C) 2003-2008 the VideoLAN team * $Id$ * * Authors: Jon Lech Johansen + * Felix Paul KŸhne * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,12 +22,13 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ -#include +#import +#import -#include "intf.h" /* VLCApplication */ -#include "misc.h" -#include "playlist.h" -#include "controls.h" +#import "intf.h" /* VLCApplication */ +#import "misc.h" +#import "playlist.h" +#import "controls.h" /***************************************************************************** * NSAnimation (VLCAdditions) @@ -113,7 +115,6 @@ static NSMutableArray *blackoutWindows = NULL; [blackoutWindows makeObjectsPerformSelector:@selector(close)]; [blackoutWindows removeAllObjects]; - for(i = 0; i < [[NSScreen screens] count]; i++) { NSScreen *screen = [[NSScreen screens] objectAtIndex: i]; @@ -124,7 +125,7 @@ static NSMutableArray *blackoutWindows = NULL; continue; screen_rect = [screen frame]; - screen_rect.origin.x = screen_rect.origin.y = 0.0f; + screen_rect.origin.x = screen_rect.origin.y = 0; /* blackoutWindow alloc strategy - The NSMutableArray blackoutWindows has the blackoutWindow references @@ -135,10 +136,14 @@ static NSMutableArray *blackoutWindows = NULL; [blackoutWindow setBackgroundColor:[NSColor blackColor]]; [blackoutWindow setLevel: NSFloatingWindowLevel]; /* Disappear when Expose is triggered */ + [blackoutWindow displayIfNeeded]; [blackoutWindow orderFront: self animate: YES]; [blackoutWindows addObject: blackoutWindow]; [blackoutWindow release]; + + if( [screen isMainScreen ] ) + SetSystemUIMode( kUIModeAllHidden, kUIOptionAutoShowMenuBar); } } @@ -151,6 +156,8 @@ static NSMutableArray *blackoutWindows = NULL; VLCWindow *blackoutWindow = [blackoutWindows objectAtIndex: i]; [blackoutWindow closeAndAnimate: YES]; } + + SetSystemUIMode( kUIModeNormal, 0); } @end diff --git a/modules/gui/macosx/vout.m b/modules/gui/macosx/vout.m index 55bddd861f..bf941262eb 100644 --- a/modules/gui/macosx/vout.m +++ b/modules/gui/macosx/vout.m @@ -10,7 +10,7 @@ * Derk-Jan Hartman * Eric Petit * Benjamin Pracht - * Felix Kühne + * Felix Paul Kühne * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by -- 2.39.2