From 1e522f4035bbab5d97d5416c56542dfbffc96766 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Mon, 7 Dec 2015 21:07:04 +0100 Subject: [PATCH] (Android) Start calling SET_STUB_FRAME for LOST_FOCUS/GAINED_FOCUS --- input/drivers/android_input.c | 10 ++++++++++ menu/menu_display.c | 8 +++++--- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/input/drivers/android_input.c b/input/drivers/android_input.c index 25259d4d2e..8085d16c42 100644 --- a/input/drivers/android_input.c +++ b/input/drivers/android_input.c @@ -33,6 +33,10 @@ #include "../../general.h" #include "../../driver.h" +#ifdef HAVE_MENU +#include "../../menu/menu_display.h" +#endif + #define MAX_TOUCH 16 typedef struct @@ -319,6 +323,9 @@ static void android_input_poll_main_cmd(void) runloop_ctl(RUNLOOP_CTL_SET_PAUSED, &boolean); runloop_ctl(RUNLOOP_CTL_SET_IDLE, &boolean); +#ifdef HAVE_MENU + menu_display_ctl(MENU_DISPLAY_CTL_UNSET_STUB_DRAW_FRAME, NULL); +#endif if ((android_app->sensor_state_mask & (UINT64_C(1) << RETRO_SENSOR_ACCELEROMETER_ENABLE)) @@ -338,6 +345,9 @@ static void android_input_poll_main_cmd(void) runloop_ctl(RUNLOOP_CTL_SET_PAUSED, &boolean); runloop_ctl(RUNLOOP_CTL_SET_IDLE, &boolean); +#ifdef HAVE_MENU + menu_display_ctl(MENU_DISPLAY_CTL_SET_STUB_DRAW_FRAME, NULL); +#endif /* Avoid draining battery while app is not being used. */ if ((android_app->sensor_state_mask diff --git a/menu/menu_display.c b/menu/menu_display.c index 2421b610bd..fabc7d2936 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -256,7 +256,7 @@ bool menu_display_init_main_font(void *data, bool menu_display_ctl(enum menu_display_ctl_state state, void *data) { unsigned width, height; - static menu_display_draw_t draw_bak = NULL; + static menu_display_draw_t draw_bak = NULL; static menu_display_draw_bg_t draw_bg_bak = NULL; menu_framebuf_t *frame_buf = menu_display_fb_get_ptr(); menu_display_t *disp = menu_display_get_ptr(); @@ -272,8 +272,10 @@ bool menu_display_ctl(enum menu_display_ctl_state state, void *data) menu_disp->draw_bg = menu_display_ctx_null.draw_bg; break; case MENU_DISPLAY_CTL_UNSET_STUB_DRAW_FRAME: - menu_disp->draw = draw_bak; - menu_disp->draw_bg = draw_bg_bak; + if (draw_bak != NULL) + menu_disp->draw = draw_bak; + if (draw_bg_bak != NULL) + menu_disp->draw_bg = draw_bg_bak; break; case MENU_DISPLAY_CTL_FONT_BUF: {