diff --git a/platform/iphone/app_delegate.mm b/platform/iphone/app_delegate.mm index 8a3dfe0623..e90a16a684 100644 --- a/platform/iphone/app_delegate.mm +++ b/platform/iphone/app_delegate.mm @@ -57,6 +57,7 @@ #endif Error _shell_open(String); +void _set_keep_screen_on(bool p_enabled); Error _shell_open(String p_uri) { NSString* url = [[NSString alloc] initWithUTF8String:p_uri.utf8().get_data()]; @@ -70,6 +71,10 @@ Error _shell_open(String p_uri) { return OK; }; +void _set_keep_screen_on(bool p_enabled) { + [[UIApplication sharedApplication] setIdleTimerDisabled:(BOOL)p_enabled]; +}; + @implementation AppDelegate @synthesize window; @@ -212,8 +217,8 @@ static int frame_count = 0; [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; // disable idle timer - application.idleTimerDisabled = YES; - + //application.idleTimerDisabled = YES; + //Create a full-screen window window = [[UIWindow alloc] initWithFrame:rect]; //window.autoresizesSubviews = YES; @@ -238,6 +243,7 @@ static int frame_count = 0; view_controller.view = glView; window.rootViewController = view_controller; + _set_keep_screen_on(bool(GLOBAL_DEF("display/set_keep_screen_on",true)) ? YES : NO); glView.useCADisplayLink = bool(GLOBAL_DEF("display.iOS/use_cadisplaylink",true)) ? YES : NO; printf("cadisaplylink: %d", glView.useCADisplayLink); glView.animationInterval = 1.0 / kRenderingFrequency; diff --git a/platform/iphone/os_iphone.cpp b/platform/iphone/os_iphone.cpp index b60da43374..ec62cb5c26 100644 --- a/platform/iphone/os_iphone.cpp +++ b/platform/iphone/os_iphone.cpp @@ -454,6 +454,7 @@ bool OSIPhone::has_virtual_keyboard() const { extern void _show_keyboard(String p_existing); extern void _hide_keyboard(); extern Error _shell_open(String p_uri); +extern void _set_keep_screen_on(bool p_enabled); void OSIPhone::show_virtual_keyboard(const String& p_existing_text,const Rect2& p_screen_rect) { _show_keyboard(p_existing_text); @@ -467,6 +468,10 @@ Error OSIPhone::shell_open(String p_uri) { return _shell_open(p_uri); }; +void OSIPhone::set_keep_screen_on(bool p_enabled) { + OS::set_keep_screen_on(p_enabled); + _set_keep_screen_on(p_enabled); +}; void OSIPhone::set_cursor_shape(CursorShape p_shape) { diff --git a/platform/iphone/os_iphone.h b/platform/iphone/os_iphone.h index 631c9d6452..abe797fed1 100644 --- a/platform/iphone/os_iphone.h +++ b/platform/iphone/os_iphone.h @@ -166,6 +166,8 @@ public: virtual void set_video_mode(const VideoMode& p_video_mode,int p_screen=0); virtual VideoMode get_video_mode(int p_screen=0) const; virtual void get_fullscreen_mode_list(List *p_list,int p_screen=0) const; + + virtual void set_keep_screen_on(bool p_enabled); virtual bool can_draw() const;