aboutsummaryrefslogtreecommitdiff
path: root/engines/glk/window_text_buffer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/glk/window_text_buffer.cpp')
-rw-r--r--engines/glk/window_text_buffer.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/engines/glk/window_text_buffer.cpp b/engines/glk/window_text_buffer.cpp
index 788f8caea5..2638302e62 100644
--- a/engines/glk/window_text_buffer.cpp
+++ b/engines/glk/window_text_buffer.cpp
@@ -653,6 +653,9 @@ void TextBufferWindow::requestLineEvent(char *buf, uint maxlen, uint initlen) {
if (g_vm->gli_register_arr)
_inArrayRock = (*g_vm->gli_register_arr)(buf, maxlen, "&+#!Cn");
+
+ // Switch focus to the new window
+ _windows->inputGuessFocus();
}
void TextBufferWindow::requestLineEventUni(uint32 *buf, uint maxlen, uint initlen) {
@@ -707,6 +710,23 @@ void TextBufferWindow::requestLineEventUni(uint32 *buf, uint maxlen, uint initle
if (g_vm->gli_register_arr)
_inArrayRock = (*g_vm->gli_register_arr)(buf, maxlen, "&+#!Iu");
+
+ // Switch focus to the new window
+ _windows->inputGuessFocus();
+}
+
+void TextBufferWindow::requestCharEvent() {
+ _charRequest = true;
+
+ // Switch focus to the new window
+ _windows->inputGuessFocus();
+}
+
+void TextBufferWindow::requestCharEventUni() {
+ _charRequestUni = true;
+
+ // Switch focus to the new window
+ _windows->inputGuessFocus();
}
void TextBufferWindow::cancelLineEvent(Event *ev) {