Refactor OS X foreground process setting into a separate function.

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30964 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
diego 2010-03-26 15:02:14 +00:00
parent 85640449d2
commit 3e7a2bd8c3
4 changed files with 26 additions and 38 deletions

View File

@ -19,6 +19,7 @@
// only to get keycode definitions from HIToolbox/Events.h // only to get keycode definitions from HIToolbox/Events.h
#include <Carbon/Carbon.h> #include <Carbon/Carbon.h>
#include "config.h"
#include "osx_common.h" #include "osx_common.h"
#include "video_out.h" #include "video_out.h"
#include "osdep/keycodes.h" #include "osdep/keycodes.h"
@ -140,3 +141,25 @@ void config_movie_aspect(float config_aspect)
old_movie_aspect = config_aspect; old_movie_aspect = config_aspect;
our_aspect_change = 0; our_aspect_change = 0;
} }
/** This chunk of code is heavily based off SDL_macosx.m from SDL.
* The CPSEnableForegroundOperation that was here before is private
* and should not be used.
* Replaced by a call to the 10.3+ TransformProcessType.
*/
void osx_foreground_hack(void)
{
#if !defined (CONFIG_MACOSX_FINDER) || !defined (CONFIG_SDL)
ProcessSerialNumber myProc, frProc;
Boolean sameProc;
if (GetFrontProcess(&frProc) == noErr &&
GetCurrentProcess(&myProc) == noErr) {
if (SameProcess(&frProc, &myProc, &sameProc) == noErr && !sameProc) {
TransformProcessType(&myProc,
kProcessTransformToForegroundApplication);
}
SetFrontProcess(&myProc);
}
#endif
}

View File

@ -22,5 +22,6 @@
int convert_key(unsigned key, unsigned charcode); int convert_key(unsigned key, unsigned charcode);
void change_movie_aspect(float new_aspect); void change_movie_aspect(float new_aspect);
void config_movie_aspect(float config_aspect); void config_movie_aspect(float config_aspect);
void osx_foreground_hack(void);
#endif /* MPLAYER_OSX_COMMON_H */ #endif /* MPLAYER_OSX_COMMON_H */

View File

@ -386,23 +386,7 @@ static int preinit(const char *arg)
NSApp = [NSApplication sharedApplication]; NSApp = [NSApplication sharedApplication];
isLeopardOrLater = floor(NSAppKitVersionNumber) > 824; isLeopardOrLater = floor(NSAppKitVersionNumber) > 824;
#if !defined (CONFIG_MACOSX_FINDER) || !defined (CONFIG_SDL) osx_foreground_hack();
//this chunk of code is heavily based off SDL_macosx.m from SDL
ProcessSerialNumber myProc, frProc;
Boolean sameProc;
if (GetFrontProcess(&frProc) == noErr)
{
if (GetCurrentProcess(&myProc) == noErr)
{
if (SameProcess(&frProc, &myProc, &sameProc) == noErr && !sameProc)
{
TransformProcessType(&myProc, kProcessTransformToForegroundApplication);
}
SetFrontProcess(&myProc);
}
}
#endif
if(!mpGLView) if(!mpGLView)
{ {

View File

@ -1088,27 +1088,7 @@ static int preinit(const char *arg)
} }
} }
#if !defined (CONFIG_MACOSX_FINDER) || !defined (CONFIG_SDL) osx_foreground_hack();
// this chunk of code is heavily based off SDL_macosx.m from SDL
// the CPSEnableForegroundOperation that was here before is private and shouldn't be used
// replaced by a call to the 10.3+ TransformProcessType
{
ProcessSerialNumber myProc, frProc;
Boolean sameProc;
if (GetFrontProcess(&frProc) == noErr)
{
if (GetCurrentProcess(&myProc) == noErr)
{
if (SameProcess(&frProc, &myProc, &sameProc) == noErr && !sameProc)
{
TransformProcessType(&myProc, kProcessTransformToForegroundApplication);
}
SetFrontProcess(&myProc);
}
}
}
#endif
return 0; return 0;
} }