[vlc-devel] commit: Fixed 'Blackout screens' on multi-screen setups ( Felix Paul Kühne )
git version control
git at videolan.org
Fri Mar 28 12:47:31 CET 2008
vlc | branch: master | Felix Paul Kühne <fkuehne at videolan.org> | Fri Mar 28 12:47:44 2008 +0100| [834670aa5a382032340f77f2ea03b03dc1977cbb]
Fixed 'Blackout screens' on multi-screen setups
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=834670aa5a382032340f77f2ea03b03dc1977cbb
---
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 b9f22cd..582f8ac 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 <bigben at videolan dot org>
+ * Felix Paul Kühne <fkuehne at videolan dot org>
*
* 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 7034a73..121ec7b 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 <jon-vl at nanocrew.net>
+ * Felix Paul Khne <fkuehne at videolan dot org>
*
* 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 <Cocoa/Cocoa.h>
+#import <Cocoa/Cocoa.h>
+#import <QuickTime/QuickTime.h>
-#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 55bddd8..bf94126 100644
--- a/modules/gui/macosx/vout.m
+++ b/modules/gui/macosx/vout.m
@@ -10,7 +10,7 @@
* Derk-Jan Hartman <hartman at videolan dot org>
* Eric Petit <titer at m0k.org>
* Benjamin Pracht <bigben at videolan dot org>
- * Felix Kühne <fkuehne at videolan dot org>
+ * Felix Paul Kühne <fkuehne at videolan dot org>
*
* 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
More information about the vlc-devel
mailing list