Skip to content

Commit

Permalink
Fixed bug 3503 - osx builds don't run on 10.6 as of rev. 10651
Browse files Browse the repository at this point in the history
Ozkan Sezer

With rev. 10651, i.e. http://hg.libsdl.org/SDL/rev/747a6a795b21 ,
SDL2 - OS X builds fail to run on 10.6 (my setup: i686 / 10.6.8)
because the symbol _IOPMAssertionCreateWithDescription is missing.
The SDK listing it for 10.7+ does seem correct.  Reverting r10651
and rebuilding makes it to function again.
  • Loading branch information
slouken committed Dec 1, 2016
1 parent 4905cd9 commit 1b689c3
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 0 deletions.
15 changes: 15 additions & 0 deletions src/video/cocoa/SDL_cocoaevents.m
Expand Up @@ -394,6 +394,17 @@ - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filenam
Cocoa_PumpEvents(_THIS)
{ @autoreleasepool
{
/* Update activity every 30 seconds to prevent screensaver */
SDL_VideoData *data = (SDL_VideoData *)_this->driverdata;
if (_this->suspend_screensaver && !data->screensaver_use_iopm) {
Uint32 now = SDL_GetTicks();
if (!data->screensaver_activity ||
SDL_TICKS_PASSED(now, data->screensaver_activity + 30000)) {
UpdateSystemActivity(UsrActivity);
data->screensaver_activity = now;
}
}

for ( ; ; ) {
NSEvent *event = [NSApp nextEventMatchingMask:NSAnyEventMask untilDate:[NSDate distantPast] inMode:NSDefaultRunLoopMode dequeue:YES ];
if ( event == nil ) {
Expand All @@ -415,6 +426,10 @@ - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filenam
{
SDL_VideoData *data = (SDL_VideoData *)_this->driverdata;

if (!data->screensaver_use_iopm) {
return;
}

if (data->screensaver_assertion) {
IOPMAssertionRelease(data->screensaver_assertion);
data->screensaver_assertion = 0;
Expand Down
1 change: 1 addition & 0 deletions src/video/cocoa/SDL_cocoavideo.h
Expand Up @@ -52,6 +52,7 @@ typedef struct SDL_VideoData
SDLTranslatorResponder *fieldEdit;
NSInteger clipboard_count;
Uint32 screensaver_activity;
BOOL screensaver_use_iopm;
IOPMAssertionID screensaver_assertion;

} SDL_VideoData;
Expand Down
3 changes: 3 additions & 0 deletions src/video/cocoa/SDL_cocoavideo.m
Expand Up @@ -152,6 +152,9 @@

data->allow_spaces = ((floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6) && SDL_GetHintBoolean(SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES, SDL_TRUE));

/* The IOPM assertion API can disable the screensaver as of 10.7. */
data->screensaver_use_iopm = floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6;

return 0;
}

Expand Down

0 comments on commit 1b689c3

Please sign in to comment.