diff options
-rw-r--r-- | console.c | 14 | ||||
-rw-r--r-- | curses.c | 4 |
2 files changed, 15 insertions, 3 deletions
@@ -1067,8 +1067,13 @@ void console_select(unsigned int index) if (s) { DisplayState *ds = s->ds; active_console = s; - ds->surface = qemu_resize_displaysurface(ds->surface, s->g_width, - s->g_height, 32, 4 * s->g_width); + if (ds_get_bits_per_pixel(s->ds)) { + ds->surface = qemu_resize_displaysurface(ds->surface, s->g_width, + s->g_height, 32, 4 * s->g_width); + } else { + s->ds->surface->width = s->width; + s->ds->surface->height = s->height; + } dpy_resize(s->ds); vga_hw_invalidate(); } @@ -1186,6 +1191,11 @@ void kbd_put_keysym(int keysym) static void text_console_invalidate(void *opaque) { TextConsole *s = (TextConsole *) opaque; + if (!ds_get_bits_per_pixel(s->ds) && s->console_type == TEXT_CONSOLE) { + s->g_width = ds_get_width(s->ds); + s->g_height = ds_get_height(s->ds); + text_console_resize(s); + } console_refresh(s); } @@ -106,6 +106,8 @@ static void curses_resize(DisplayState *ds) gheight = ds_get_height(ds); curses_calc_pad(); + ds->surface->width = width * FONT_WIDTH; + ds->surface->height = height * FONT_HEIGHT; } #ifndef _WIN32 @@ -367,7 +369,7 @@ void curses_display_init(DisplayState *ds, int full_screen) dcl->dpy_text_cursor = curses_cursor_position; register_displaychangelistener(ds, dcl); qemu_free_displaysurface(ds->surface); - ds->surface = qemu_create_displaysurface_from(80, 25, 0, 0, (uint8_t*) screen); + ds->surface = qemu_create_displaysurface_from(640, 400, 0, 0, (uint8_t*) screen); invalidate = 1; |