diff --git a/src/main.c b/src/main.c index 0864e5e1..02e0082b 100644 --- a/src/main.c +++ b/src/main.c @@ -102,6 +102,7 @@ typedef struct ply_terminal_t *local_console_terminal; ply_device_manager_t *device_manager; + ply_trigger_t *details_trigger; ply_trigger_t *deactivate_trigger; ply_trigger_t *quit_trigger; @@ -1500,8 +1501,24 @@ toggle_between_splash_and_details (state_t *state) static void on_escape_pressed (state_t *state) { + + if (state->details_trigger != NULL) { + return; + } + + state->details_trigger = ply_trigger_new (&state->details_trigger); + + ply_trigger_add_handler (state->details_trigger, + (ply_trigger_handler_t) + toggle_between_splash_details, + state); + ply_trace ("escape key pressed"); - toggle_between_splash_and_details (state); + ply_event_loop_watch_for_timeout (state->loop, + 0.01, + (ply_event_loop_timeout_handler_t) + ply_trigger_pull + state->details_trigger); } static void