From 8aee3cffdcca851de6ee515d896342f863f85538 Mon Sep 17 00:00:00 2001 From: Alyssa Milburn Date: Fri, 1 Apr 2016 14:46:52 +0200 Subject: DEBUGGER: Drop events when using readline debugger This should avoid the readline debugger causing Windows to decide that ScummVM is unresponsive, by dropping incoming events in the idle callback. --- gui/debugger.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gui/debugger.cpp b/gui/debugger.cpp index c9b435963d..72d05e2973 100644 --- a/gui/debugger.cpp +++ b/gui/debugger.cpp @@ -42,6 +42,7 @@ #elif defined(USE_READLINE) #include #include + #include "common/events.h" #endif @@ -191,6 +192,15 @@ char *readline_completionFunction(const char *text, int state) { return g_readline_debugger->readlineComplete(text, state); } +void readline_eventFunction() { + Common::EventManager *eventMan = g_system->getEventManager(); + + Common::Event event; + while (eventMan->pollEvent(event)) { + // drop all events + } +} + #ifdef USE_READLINE_INT_COMPLETION typedef int RLCompFunc_t(const char *, int); #else @@ -228,6 +238,7 @@ void Debugger::enter() { g_readline_debugger = this; rl_completion_entry_function = (RLCompFunc_t *)&readline_completionFunction; + rl_event_hook = (rl_hook_func_t *)&readline_eventFunction; char *line_read = 0; do { -- cgit v1.2.3