diff options
author | Alyssa Milburn | 2016-04-01 14:46:52 +0200 |
---|---|---|
committer | Alyssa Milburn | 2016-04-01 14:49:25 +0200 |
commit | 8aee3cffdcca851de6ee515d896342f863f85538 (patch) | |
tree | ab012899cc894730dbdd1bfbf23bbc8d8a09a77b | |
parent | 307c8b0ecb861c51cad72f614a43a67b1ab00d3e (diff) | |
download | scummvm-rg350-8aee3cffdcca851de6ee515d896342f863f85538.tar.gz scummvm-rg350-8aee3cffdcca851de6ee515d896342f863f85538.tar.bz2 scummvm-rg350-8aee3cffdcca851de6ee515d896342f863f85538.zip |
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.
-rw-r--r-- | gui/debugger.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
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 <readline/readline.h> #include <readline/history.h> + #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 { |