sdl: Consistently avoid grabbing input for text consoles
There were some preexisting bits that released the input when switching
to text console. This patch spreads this logic consistently and also
avoids grabbing the input while a text console is active.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
diff --git a/ui/sdl.c b/ui/sdl.c
index f19bae2..27465b2 100644
--- a/ui/sdl.c
+++ b/ui/sdl.c
@@ -564,8 +564,9 @@
} else {
do_sdl_resize(ds_get_width(ds), ds_get_height(ds), 0);
}
- if (!gui_saved_grab)
+ if (!gui_saved_grab || !is_graphic_console()) {
sdl_grab_end();
+ }
}
vga_hw_invalidate();
vga_hw_update();
@@ -689,8 +690,10 @@
'SDL_WM_GrabInput(SDL_GRAB_ON)'
from blocking all the application
(SDL bug). */
- if (SDL_GetAppState() & SDL_APPACTIVE)
+ if (is_graphic_console() &&
+ SDL_GetAppState() & SDL_APPACTIVE) {
sdl_grab_start();
+ }
} else {
sdl_grab_end();
}
@@ -721,7 +724,7 @@
break;
case SDL_MOUSEBUTTONDOWN:
case SDL_MOUSEBUTTONUP:
- {
+ if (is_graphic_console()) {
SDL_MouseButtonEvent *bev = &ev->button;
if (!gui_grab && !kbd_mouse_is_absolute()) {
if (ev->type == SDL_MOUSEBUTTONDOWN &&