From 430d8af65addf4ff7922102112d1a365c49efbf0 Mon Sep 17 00:00:00 2001 From: "Ryan C. Gordon" Date: Tue, 10 Jan 2006 20:52:35 +0000 Subject: [PATCH] Properly restore vidmode when switching back to SDL's virtual terminal with the fbcon driver: Fixes Bugzilla #37. --- src/video/fbcon/SDL_fbevents.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/video/fbcon/SDL_fbevents.c b/src/video/fbcon/SDL_fbevents.c index 69d85067d..70c22fc1b 100644 --- a/src/video/fbcon/SDL_fbevents.c +++ b/src/video/fbcon/SDL_fbevents.c @@ -882,6 +882,7 @@ static void handle_mouse(_THIS) */ static void switch_vt(_THIS, unsigned short which) { + struct fb_var_screeninfo vinfo; struct vt_stat vtstate; unsigned short v_active; SDL_Surface *screen; @@ -906,6 +907,7 @@ static void switch_vt(_THIS, unsigned short which) memcpy(screen_contents, screen->pixels, screen_arealen); } FB_SavePaletteTo(this, 256, saved_pal); + ioctl(console_fd, FBIOGET_VSCREENINFO, &vinfo); ioctl(keyboard_fd, KDSETMODE, KD_TEXT); /* New console, switch to it */ @@ -923,6 +925,7 @@ static void switch_vt(_THIS, unsigned short which) /* Restore graphics mode and the contents of the screen */ ioctl(keyboard_fd, KDSETMODE, KD_GRAPHICS); + ioctl(console_fd, FBIOPUT_VSCREENINFO, &vinfo); FB_RestorePaletteFrom(this, 256, saved_pal); if ( screen_contents ) { memcpy(screen->pixels, screen_contents, screen_arealen);