[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL v2 2/5] gtk: Install fullscreen accelerator on toplev
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PULL v2 2/5] gtk: Install fullscreen accelerator on toplevel window |
Date: |
Tue, 4 Nov 2014 14:45:43 +0100 |
From: Cole Robinson <address@hidden>
Instead of installing it on the menu. This will be needed to keep the
fullscreen keyboard shortcut working when we hide the menu (in future
patches).
On gtk < 3.8, this has the unfortunate side effect of no longer listing
the key combo in the UI. We could manually change the label in that case,
but it will look visually out of place, and I'm not sure if anyone really
cares.
Signed-off-by: Cole Robinson <address@hidden>
Signed-off-by: Gerd Hoffmann <address@hidden>
---
ui/gtk.c | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
diff --git a/ui/gtk.c b/ui/gtk.c
index 97ac4c9..af8b2d0 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -1123,6 +1123,12 @@ static void gd_menu_full_screen(GtkMenuItem *item, void
*opaque)
gd_update_cursor(vc);
}
+static void gd_accel_full_screen(void *opaque)
+{
+ GtkDisplayState *s = opaque;
+ gtk_menu_item_activate(GTK_MENU_ITEM(s->full_screen_item));
+}
+
static void gd_menu_zoom_in(GtkMenuItem *item, void *opaque)
{
GtkDisplayState *s = opaque;
@@ -1704,10 +1710,14 @@ static GtkWidget *gd_create_menu_view(GtkDisplayState
*s)
gtk_menu_set_accel_group(GTK_MENU(view_menu), s->accel_group);
s->full_screen_item = gtk_menu_item_new_with_mnemonic(_("_Fullscreen"));
- 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,
- HOTKEY_MODIFIERS);
+
+ gtk_accel_group_connect(s->accel_group, GDK_KEY_f, HOTKEY_MODIFIERS, 0,
+ g_cclosure_new_swap(G_CALLBACK(gd_accel_full_screen), s, NULL));
+#if GTK_CHECK_VERSION(3, 8, 0)
+ gtk_accel_label_set_accel(
+ GTK_ACCEL_LABEL(gtk_bin_get_child(GTK_BIN(s->full_screen_item))),
+ GDK_KEY_f, HOTKEY_MODIFIERS);
+#endif
gtk_menu_shell_append(GTK_MENU_SHELL(view_menu), s->full_screen_item);
separator = gtk_separator_menu_item_new();
--
1.8.3.1
- [Qemu-devel] [PULL v2 0/5] gtk: fix fullscreen with gtk3, fix build with older gtk2 versions., Gerd Hoffmann, 2014/11/04
- [Qemu-devel] [PULL v2 1/5] gtk: Grab accel_group from GtkDisplayState, Gerd Hoffmann, 2014/11/04
- [Qemu-devel] [PULL v2 4/5] gtk: Hide the menubar when in fullscreen mode (lp 1294898), Gerd Hoffmann, 2014/11/04
- [Qemu-devel] [PULL v2 3/5] gtk: Install vc accelerators on parent window, Gerd Hoffmann, 2014/11/04
- [Qemu-devel] [PULL v2 2/5] gtk: Install fullscreen accelerator on toplevel window,
Gerd Hoffmann <=
- [Qemu-devel] [PULL v2 5/5] gtk: add GDK_KEY_pause #define, Gerd Hoffmann, 2014/11/04
- Re: [Qemu-devel] [PULL v2 0/5] gtk: fix fullscreen with gtk3, fix build with older gtk2 versions., Peter Maydell, 2014/11/04