changeset 1241:4b2146866b82

Properly restore vidmode when switching back to SDL's virtual terminal with the fbcon driver: Fixes Bugzilla #37.
author Ryan C. Gordon <icculus@icculus.org>
date Tue, 10 Jan 2006 20:52:35 +0000
parents 3b8a43c428bb
children caf0328c8058
files src/video/fbcon/SDL_fbevents.c
diffstat 1 files changed, 3 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/video/fbcon/SDL_fbevents.c	Sun Jan 08 21:18:15 2006 +0000
+++ b/src/video/fbcon/SDL_fbevents.c	Tue Jan 10 20:52:35 2006 +0000
@@ -882,6 +882,7 @@
  */
 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 @@
 		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 @@
 
 	/* 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);