BGE #18691: Blenderplayer fullscreen messes up desktop on OS X Leopard. Applied patch...
authorBenoit Bolsee <benoit.bolsee@online.be>
Wed, 13 May 2009 06:53:21 +0000 (06:53 +0000)
committerBenoit Bolsee <benoit.bolsee@online.be>
Wed, 13 May 2009 06:53:21 +0000 (06:53 +0000)
intern/ghost/intern/GHOST_SystemCarbon.cpp
intern/ghost/intern/GHOST_SystemCarbon.h

index 067c8de..e6ab652 100644 (file)
@@ -34,7 +34,6 @@
  * @date       May 7, 2001
  */
 
-
 #include <Carbon/Carbon.h>
 #include <ApplicationServices/ApplicationServices.h>
 #include "GHOST_SystemCarbon.h"
@@ -430,6 +429,29 @@ GHOST_IWindow* GHOST_SystemCarbon::createWindow(
     return window;
 }
 
+GHOST_TSuccess GHOST_SystemCarbon::beginFullScreen(const GHOST_DisplaySetting& setting, GHOST_IWindow** window, const bool stereoVisual)
+{      
+       GHOST_TSuccess success = GHOST_kFailure;
+
+       // need yo make this Carbon all on 10.5 for fullscreen to work correctly
+       CGCaptureAllDisplays();
+       
+       success = GHOST_System::beginFullScreen( setting, window, stereoVisual);
+       
+       if( success != GHOST_kSuccess ) {
+                       // fullscreen failed for other reasons, release
+                       CGReleaseAllDisplays(); 
+       }
+
+       return success;
+}
+
+GHOST_TSuccess GHOST_SystemCarbon::endFullScreen(void)
+{      
+       CGReleaseAllDisplays();
+       return GHOST_System::endFullScreen();
+}
+
 /* this is an old style low level event queue.
   As we want to handle our own timers, this is ok.
   the full screen hack should be removed */
index 2a1d632..71ac571 100644 (file)
@@ -118,6 +118,14 @@ public:
                const GHOST_TEmbedderWindowID parentWindow = 0 
        );
        
+       virtual GHOST_TSuccess beginFullScreen(
+               const GHOST_DisplaySetting& setting, 
+               GHOST_IWindow** window,
+               const bool stereoVisual
+       );
+       
+       virtual GHOST_TSuccess endFullScreen( void );
+       
        /***************************************************************************************
         ** Event management functionality
         ***************************************************************************************/