[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 6/8] gtk: add support for screen scaling and ful
From: |
Stefan Weil |
Subject: |
Re: [Qemu-devel] [PATCH 6/8] gtk: add support for screen scaling and full screen (v2) |
Date: |
Mon, 27 Feb 2012 21:10:28 +0100 |
User-agent: |
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20120207 Iceowl/1.0b1 Icedove/3.0.11 |
Am 27.02.2012 00:46, schrieb Anthony Liguori:
Basic menu items to enter full screen mode and zoom in/out. Unlike SDL, we
don't allow arbitrary scaling based on window resizing. The current
behavior
with SDL causes a lot of problems for me.
Sometimes I accidentally resize the window a tiny bit while trying to
move it
(Ubuntu's 1-pixel window decorations don't help here). After that,
scaling is
now active and if the screen changes size again, badness ensues since the
aspect ratio is skewed.
Allowing zooming by 25% in and out should cover most use cases. We can
add a
more flexible scaling later but for now, I think this is a more friendly
behavior.
Signed-off-by: Anthony Liguori <address@hidden>
---
v1 -> v2
- fix scaling (Paolo)
- use ctrl-alt-+ instead of ctrl-alt-= for zoom
---
ui/gtk.c | 92
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 88 insertions(+), 4 deletions(-)
diff --git a/ui/gtk.c b/ui/gtk.c
index 0dac807..578cb94 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
[...]
+ s->full_screen_item = gtk_check_menu_item_new_with_mnemonic("_Full
Screen");
I suggest using the GTK standard widget GTK_STOCK_FULLSCREEN here.
That's not a check menu item, so some more changes will be needed.
Full screen mode does not need a check menu item, because you only
see the menu item when it is not in full screen mode.
+ gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->full_screen_item),
+ "<QEMU>/View/Full Screen");
+ gtk_accel_map_add_entry("<QEMU>/View/Full Screen", GDK_KEY_f,
GDK_CONTROL_MASK | GDK_MOD1_MASK);
+ gtk_menu_append(GTK_MENU(s->view_menu), s->full_screen_item);
+
+ separator = gtk_separator_menu_item_new();
+ gtk_menu_append(GTK_MENU(s->view_menu), separator);
+
+ s->zoom_in_item =
gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_IN, NULL);
+ gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->zoom_in_item),
+ "<QEMU>/View/Zoom In");
+ gtk_accel_map_add_entry("<QEMU>/View/Zoom In", GDK_KEY_plus,
GDK_CONTROL_MASK | GDK_MOD1_MASK);
+ gtk_menu_append(GTK_MENU(s->view_menu), s->zoom_in_item);
+
+ s->zoom_out_item =
gtk_image_menu_item_new_from_stock(GTK_STOCK_ZOOM_OUT, NULL);
+ gtk_menu_item_set_accel_path(GTK_MENU_ITEM(s->zoom_out_item),
+ "<QEMU>/View/Zoom Out");
+ gtk_accel_map_add_entry("<QEMU>/View/Zoom Out", GDK_KEY_minus,
GDK_CONTROL_MASK | GDK_MOD1_MASK);
+ gtk_menu_append(GTK_MENU(s->view_menu), s->zoom_out_item);
+
separator = gtk_separator_menu_item_new();
gtk_menu_append(GTK_MENU(s->view_menu), separator);
As was already said, GTK_STOCK_ZOOM_100 with accelerator GDK_KEY_0
would complete the zooming menu entries.
In your previous patch, you scaled s->scale_x *= 1.25 (which was correct)
and s->scale_x *= 0.75 (which should have been s->scale_x *= 0.8).
Why do you now use s->scale_x += .25, s->scale_x -= .25?
Linear scaling is uncommon and not what I'd expect when I read
25 % zooming in / out. I know that SDL also uses linear scaling,
but GTK wants to be better than SDL.
Regards,
Stefan Weil
- [Qemu-devel] [PATCH 0/8] Add GTK UI to enable basic accessibility (v2), Anthony Liguori, 2012/02/26
- [Qemu-devel] [PATCH 1/8] console: allow VCs to be overridden by UI, Anthony Liguori, 2012/02/26
- [Qemu-devel] [PATCH 2/8] chr: check to see if front end has registered a read function, Anthony Liguori, 2012/02/26
- [Qemu-devel] [PATCH 4/8] gtk: add virtual console support (v2), Anthony Liguori, 2012/02/26
- [Qemu-devel] [PATCH 3/8] ui: add basic GTK gui (v2), Anthony Liguori, 2012/02/26
- [Qemu-devel] [PATCH 5/8] gtk: add support for input grabbing, Anthony Liguori, 2012/02/26
- [Qemu-devel] [PATCH 6/8] gtk: add support for screen scaling and full screen (v2), Anthony Liguori, 2012/02/26
- Re: [Qemu-devel] [PATCH 6/8] gtk: add support for screen scaling and full screen (v2),
Stefan Weil <=
- [Qemu-devel] [PATCH 7/8] gtk: add translation support, Anthony Liguori, 2012/02/26
- [Qemu-devel] [PATCH 8/8] gtk: make default UI, Anthony Liguori, 2012/02/26
- Re: [Qemu-devel] [PATCH 0/8] Add GTK UI to enable basic accessibility (v2), malc, 2012/02/27
- Re: [Qemu-devel] [PATCH 0/8] Add GTK UI to enable basic accessibility (v2), Jan Kiszka, 2012/02/27