summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--console.c14
-rw-r--r--curses.c4
2 files changed, 15 insertions, 3 deletions
diff --git a/console.c b/console.c
index 6d0c1b3b6..4bc16e8d1 100644
--- a/console.c
+++ b/console.c
@@ -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);
}
diff --git a/curses.c b/curses.c
index b3aa01192..97ab41263 100644
--- a/curses.c
+++ b/curses.c
@@ -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;