]> git.sesse.net Git - vlc/commitdiff
Fixed 'Blackout screens' on multi-screen setups
authorFelix Paul Kühne <fkuehne@videolan.org>
Fri, 28 Mar 2008 11:47:44 +0000 (12:47 +0100)
committerFelix Paul Kühne <fkuehne@videolan.org>
Fri, 28 Mar 2008 11:48:03 +0000 (12:48 +0100)
modules/gui/macosx/embeddedwindow.m
modules/gui/macosx/misc.m
modules/gui/macosx/vout.m

index b9f22cd82bca7179f16e47e8a8fb8a195ba3fda0..582f8ac7c9d6d4c19287f6e57524049c25b29255 100644 (file)
@@ -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
     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" )]; 
  
 
     [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)
index 7034a73b78da5cfd187bbe96cee793173dea2899..121ec7ba0585cf8ef3b5af0263edef64d454966e 100644 (file)
@@ -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@nanocrew.net>
+ *          Felix Paul K\9fhne <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
  * 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
index 55bddd861f0b14c6beb91ea738137936d3aa358f..bf941262eb41339ddb1816cbc46a92bf0879a087 100644 (file)
@@ -10,7 +10,7 @@
  *          Derk-Jan Hartman <hartman at videolan dot org>
  *          Eric Petit <titer@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