From d6a65ba333ce3af34721e1452a1206233ac2a3e5 Mon Sep 17 00:00:00 2001 From: Jan Kiszka Date: Sat, 30 Jul 2011 11:39:16 +0200 Subject: [PATCH] sdl: Add zoom hot keys Allow to enlarge or shrink the screen via CTRL-ALT-+/-. In contrast to scaling the window, these controls always preserve the aspect ratio of the current console. CC: Stefano Stabellini Signed-off-by: Jan Kiszka Signed-off-by: Anthony Liguori --- qemu-doc.texi | 8 ++++++++ ui/sdl.c | 13 +++++++++++++ 2 files changed, 21 insertions(+) diff --git a/qemu-doc.texi b/qemu-doc.texi index 47e1991712..31199f6004 100644 --- a/qemu-doc.texi +++ b/qemu-doc.texi @@ -288,6 +288,14 @@ then the modifier is Ctrl-Alt-Shift (instead of Ctrl-Alt) and if you use @kindex Ctrl-Alt-f Toggle full screen +@item Ctrl-Alt-+ +@kindex Ctrl-Alt-+ +Enlarge the screen + +@item Ctrl-Alt-- +@kindex Ctrl-Alt-- +Shrink the screen + @item Ctrl-Alt-u @kindex Ctrl-Alt-u Restore the screen's un-scaled dimensions diff --git a/ui/sdl.c b/ui/sdl.c index e8ac3bb65b..fc63c8eec5 100644 --- a/ui/sdl.c +++ b/ui/sdl.c @@ -651,6 +651,19 @@ static void sdl_refresh(DisplayState *ds) absolute_mouse_grab(); } break; + case 0x1b: /* '+' */ + case 0x35: /* '-' */ + if (!gui_fullscreen) { + int width = MAX(real_screen->w + + (keycode == 0x1b ? 50 : -50), 160); + int height = (ds_get_height(ds) * width) / + ds_get_width(ds); + + sdl_scale(ds, width, height); + vga_hw_invalidate(); + vga_hw_update(); + gui_keysym = 1; + } default: break; }