From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LPiIF-0000BQ-2b for qemu-devel@nongnu.org; Wed, 21 Jan 2009 13:59:15 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LPiIE-0000AG-BN for qemu-devel@nongnu.org; Wed, 21 Jan 2009 13:59:14 -0500 Received: from [199.232.76.173] (port=46722 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LPiIE-00009v-3D for qemu-devel@nongnu.org; Wed, 21 Jan 2009 13:59:14 -0500 Received: from savannah.gnu.org ([199.232.41.3]:33879 helo=sv.gnu.org) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1LPiID-00008V-Ob for qemu-devel@nongnu.org; Wed, 21 Jan 2009 13:59:13 -0500 Received: from cvs.savannah.gnu.org ([199.232.41.69]) by sv.gnu.org with esmtp (Exim 4.63) (envelope-from ) id 1LPiID-0004Lc-89 for qemu-devel@nongnu.org; Wed, 21 Jan 2009 18:59:13 +0000 Received: from aliguori by cvs.savannah.gnu.org with local (Exim 4.63) (envelope-from ) id 1LPiID-0004LY-36 for qemu-devel@nongnu.org; Wed, 21 Jan 2009 18:59:13 +0000 MIME-Version: 1.0 Errors-To: aliguori Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From: Anthony Liguori Message-Id: Date: Wed, 21 Jan 2009 18:59:13 +0000 Subject: [Qemu-devel] [6389] fix curses interface (Stefano Stabellini) Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Revision: 6389 http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6389 Author: aliguori Date: 2009-01-21 18:59:12 +0000 (Wed, 21 Jan 2009) Log Message: ----------- fix curses interface (Stefano Stabellini) Hi all, this patch fixes the curses interface: when we switch from one console to another we need to change the displaystate width and height even though in the curses case the backing buffer remains of the same size. I am also putting back the call to text_console_resize in text_console_invalidate so that resizeable text consoles can be properly handled. Signed-off-by: Stefano Stabellini Signed-off-by: Anthony Liguori Modified Paths: -------------- trunk/console.c trunk/curses.c Modified: trunk/console.c =================================================================== --- trunk/console.c 2009-01-21 18:59:04 UTC (rev 6388) +++ trunk/console.c 2009-01-21 18:59:12 UTC (rev 6389) @@ -1067,8 +1067,13 @@ 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 @@ 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); } Modified: trunk/curses.c =================================================================== --- trunk/curses.c 2009-01-21 18:59:04 UTC (rev 6388) +++ trunk/curses.c 2009-01-21 18:59:12 UTC (rev 6389) @@ -106,6 +106,8 @@ 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 @@ 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;