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
#include <Carbon/Carbon.h>
#include "config.h"
#include "osx_common.h"
#include "video_out.h"
#include "osdep/keycodes.h"
@ -140,3 +141,25 @@ void config_movie_aspect(float config_aspect)
old_movie_aspect = config_aspect;
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);
void change_movie_aspect(float new_aspect);
void config_movie_aspect(float config_aspect);
void osx_foreground_hack(void);
#endif /* MPLAYER_OSX_COMMON_H */

View File

@ -386,23 +386,7 @@ static int preinit(const char *arg)
NSApp = [NSApplication sharedApplication];
isLeopardOrLater = floor(NSAppKitVersionNumber) > 824;
#if !defined (CONFIG_MACOSX_FINDER) || !defined (CONFIG_SDL)
//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
osx_foreground_hack();
if(!mpGLView)
{

View File

@ -1088,27 +1088,7 @@ static int preinit(const char *arg)
}
}
#if !defined (CONFIG_MACOSX_FINDER) || !defined (CONFIG_SDL)
// 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
osx_foreground_hack();
return 0;
}