Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
SDL
- add a new SDL_HINT_MAC_BACKGROUND_APP hint, when set or set to 1 don't force the app to be foreground
  • Loading branch information
alfred-valve committed Jul 30, 2015
1 parent 5aaf81c commit 628d8ed
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 9 deletions.
8 changes: 8 additions & 0 deletions include/SDL_hints.h
Expand Up @@ -525,6 +525,14 @@ extern "C" {
*/
#define SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES "SDL_VIDEO_MAC_FULLSCREEN_SPACES"

/**
* \brief When set don't force the SDL app to become a foreground process
*
* This hint only applies to Mac OS X.
*
*/
#define SDL_HINT_MAC_BACKGROUND_APP "SDL_MAC_BACKGROUND_APP"

/**
* \brief Android APK expansion main file version. Should be a string number like "1", "2" etc.
*/
Expand Down
21 changes: 12 additions & 9 deletions src/video/cocoa/SDL_cocoaevents.m
Expand Up @@ -26,6 +26,7 @@
#include "SDL_cocoavideo.h"
#include "../../events/SDL_events_c.h"
#include "SDL_assert.h"
#include "SDL_hints.h"

/* This define was added in the 10.9 SDK. */
#ifndef kIOPMAssertPreventUserIdleDisplaySleep
Expand Down Expand Up @@ -318,19 +319,21 @@ - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filenam
[SDLApplication sharedApplication];
SDL_assert(NSApp != nil);

const char *hint = SDL_GetHint(SDL_HINT_MAC_BACKGROUND_APP);
if (!hint && *hint != '0') {
#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6
if ([NSApp respondsToSelector:@selector(setActivationPolicy:)]) {
if ([NSApp respondsToSelector:@selector(setActivationPolicy:)]) {
#endif
[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];
[NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];
#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_6
} else {
ProcessSerialNumber psn = {0, kCurrentProcess};
TransformProcessType(&psn, kProcessTransformToForegroundApplication);
}
} else {
ProcessSerialNumber psn = {0, kCurrentProcess};
TransformProcessType(&psn, kProcessTransformToForegroundApplication);
}
#endif

[NSApp activateIgnoringOtherApps:YES];

[NSApp activateIgnoringOtherApps:YES];
}
if ([NSApp mainMenu] == nil) {
CreateApplicationMenus();
}
Expand Down

0 comments on commit 628d8ed

Please sign in to comment.