From 37bd26f92d220a26cba68055d66d44cbeedbb875 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Thu, 18 Sep 2014 12:21:11 +0200 Subject: [PATCH] Add support to use numpad accelarators for zoom-{in.out,reset} As virt-viewer uses GtkAccelMap for shortcuts and that GTK only can have one key binding per accelerator (in accel_map_add_entry), let's also add support specificly for the numpad keys in the virt-viewer code https://bugzilla.redhat.com/show_bug.cgi?id=883433 (cherry picked from commit 3a168815b738076526ba0f3e9a82e6fb1db482e9) --- src/virt-gtk-compat.h | 3 +++ src/virt-viewer-app.c | 6 ++++++ src/virt-viewer.xml | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+) diff --git a/src/virt-gtk-compat.h b/src/virt-gtk-compat.h index 110c17a..aca38b1 100644 --- a/src/virt-gtk-compat.h +++ b/src/virt-gtk-compat.h @@ -57,6 +57,9 @@ G_BEGIN_DECLS #define GDK_0 GDK_KEY_0 #define GDK_plus GDK_KEY_plus #define GDK_minus GDK_KEY_minus +#define GDK_KP_Add GDK_KEY_KP_Add +#define GDK_KP_Subtract GDK_KEY_KP_Subtract +#define GDK_KP_0 GDK_KEY_KP_0 #endif #if !GTK_CHECK_VERSION(3, 0, 0) diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c index b05e966..2fb430f 100644 --- a/src/virt-viewer-app.c +++ b/src/virt-viewer-app.c @@ -1778,8 +1778,11 @@ virt_viewer_app_constructor (GType gtype, gtk_accel_map_add_entry("/view/toggle-fullscreen", GDK_F11, 0); gtk_accel_map_add_entry("/view/release-cursor", GDK_F12, GDK_SHIFT_MASK); gtk_accel_map_add_entry("/view/zoom-reset", GDK_0, GDK_CONTROL_MASK); + gtk_accel_map_add_entry("/view/kp-zoom-reset", GDK_KP_0, GDK_CONTROL_MASK); gtk_accel_map_add_entry("/view/zoom-out", GDK_minus, GDK_CONTROL_MASK); + gtk_accel_map_add_entry("/view/kp-zoom-out", GDK_KP_Subtract, GDK_CONTROL_MASK); gtk_accel_map_add_entry("/view/zoom-in", GDK_plus, GDK_CONTROL_MASK); + gtk_accel_map_add_entry("/view/kp-zoom-in", GDK_KP_Add, GDK_CONTROL_MASK); gtk_accel_map_add_entry("/send/secure-attention", GDK_End, GDK_CONTROL_MASK | GDK_MOD1_MASK); virt_viewer_app_set_fullscreen(self, opt_fullscreen); @@ -1973,8 +1976,11 @@ virt_viewer_app_clear_hotkeys(VirtViewerApp *self) gtk_accel_map_change_entry("/view/toggle-fullscreen", 0, 0, TRUE); gtk_accel_map_change_entry("/view/release-cursor", 0, 0, TRUE); gtk_accel_map_change_entry("/view/zoom-reset", 0, 0, TRUE); + gtk_accel_map_change_entry("/view/kp-zoom-reset", 0, 0, TRUE); gtk_accel_map_change_entry("/view/zoom-in", 0, 0, TRUE); + gtk_accel_map_change_entry("/view/kp-zoom-in", 0, 0, TRUE); gtk_accel_map_change_entry("/view/zoom-out", 0, 0, TRUE); + gtk_accel_map_change_entry("/view/kp-zoom-out", 0, 0, TRUE); gtk_accel_map_change_entry("/send/secure-attention", 0, 0, TRUE); virt_viewer_set_insert_smartcard_accel(self, 0, 0); virt_viewer_set_remove_smartcard_accel(self, 0, 0); diff --git a/src/virt-viewer.xml b/src/virt-viewer.xml index d489653..760550e 100644 --- a/src/virt-viewer.xml +++ b/src/virt-viewer.xml @@ -138,6 +138,18 @@ + + <virt-viewer>/view/kp-zoom-in + gtk-zoom-in + True + False + False + True + True + + + + <virt-viewer>/view/zoom-out gtk-zoom-out @@ -150,6 +162,18 @@ + + <virt-viewer>/view/kp-zoom-out + gtk-zoom-out + True + False + False + True + True + + + + True False @@ -167,6 +191,18 @@ + + + <virt-viewer>/view/kp-zoom-reset + gtk-zoom-100 + True + False + False + True + True + + +