summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/hosted/maemo/maemo-thread.c6
-rw-r--r--firmware/target/hosted/sdl/button-sdl.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/firmware/target/hosted/maemo/maemo-thread.c b/firmware/target/hosted/maemo/maemo-thread.c
index f655ed597e..6593a9faa5 100644
--- a/firmware/target/hosted/maemo/maemo-thread.c
+++ b/firmware/target/hosted/maemo/maemo-thread.c
@@ -23,6 +23,7 @@
23#include <libhal.h> 23#include <libhal.h>
24#include <libosso.h> 24#include <libosso.h>
25#include <SDL_thread.h> 25#include <SDL_thread.h>
26#include <SDL_events.h>
26 27
27#include "config.h" 28#include "config.h"
28#include "system.h" 29#include "system.h"
@@ -213,6 +214,11 @@ void reset_poweroff_timer(void)
213 214
214void shutdown_hw(void) 215void shutdown_hw(void)
215{ 216{
217 /* Shut down SDL event loop */
218 SDL_Event event;
219 memset(&event, 0, sizeof(SDL_Event));
220 event.type = SDL_USEREVENT;
221 SDL_PushEvent(&event);
216} 222}
217 223
218void cancel_shutdown(void) 224void cancel_shutdown(void)
diff --git a/firmware/target/hosted/sdl/button-sdl.c b/firmware/target/hosted/sdl/button-sdl.c
index 25dad09341..9c8188a12f 100644
--- a/firmware/target/hosted/sdl/button-sdl.c
+++ b/firmware/target/hosted/sdl/button-sdl.c
@@ -261,7 +261,12 @@ static bool event_handler(SDL_Event *event)
261 break; 261 break;
262 } 262 }
263 case SDL_QUIT: 263 case SDL_QUIT:
264 /* Post SYS_POWEROFF event. Will post SDL_USEREVENT in shutdown_hw() if successful. */
265 queue_broadcast(SYS_POWEROFF, 0);
266 break;
267 case SDL_USEREVENT:
264 return true; 268 return true;
269 break;
265 } 270 }
266 271
267 return false; 272 return false;