diff --git a/src/video/fbcon/SDL_fbevents.c b/src/video/fbcon/SDL_fbevents.c index 69d85067d50b8b27813dbef5b91d4289e865d7d0..70c22fc1b28d51f08e493c31303057aa84c15800 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);