aboutsummaryrefslogtreecommitdiff
path: root/ui/sdl.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui/sdl.c')
-rw-r--r--ui/sdl.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/ui/sdl.c b/ui/sdl.c
index 662ffef46d..5ad38d5460 100644
--- a/ui/sdl.c
+++ b/ui/sdl.c
@@ -452,7 +452,7 @@ static void sdl_show_cursor(void)
if (!cursor_hide)
return;
- if (!kbd_mouse_is_absolute()) {
+ if (!kbd_mouse_is_absolute() || !is_graphic_console()) {
SDL_ShowCursor(1);
if (guest_cursor &&
(gui_grab || kbd_mouse_is_absolute() || absolute_enabled))
@@ -625,13 +625,20 @@ static void sdl_refresh(DisplayState *ds)
/* Reset the modifiers sent to the current console */
reset_keys();
console_select(keycode - 0x02);
+ gui_keysym = 1;
+ if (gui_fullscreen) {
+ break;
+ }
if (!is_graphic_console()) {
/* release grab if going to a text console */
- if (gui_grab && !gui_fullscreen) {
+ if (gui_grab) {
sdl_grab_end();
+ } else if (absolute_enabled) {
+ sdl_show_cursor();
}
+ } else if (absolute_enabled) {
+ sdl_hide_cursor();
}
- gui_keysym = 1;
break;
default:
break;