summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2012-02-14 18:34:49 +0100
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-02-22 16:45:00 +0100
commit51ca18beee4a080e9b05446e96c3179e8b35009c (patch)
treec6a025bd531bdb43963aecbb8e8950ba2aad834c /src
parente6dfd324c4d8a70f57b06e5274e1f4912e863613 (diff)
Use the accelgroup to define key bindings
With accelgroups, we can redefine the keybindings
Diffstat (limited to 'src')
-rw-r--r--src/virt-viewer-app.c5
-rw-r--r--src/virt-viewer-window.c18
-rw-r--r--src/virt-viewer.xml1
3 files changed, 23 insertions, 1 deletions
diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
index 540675e..630394c 100644
--- a/src/virt-viewer-app.c
+++ b/src/virt-viewer-app.c
@@ -1261,6 +1261,11 @@ virt_viewer_app_constructor (GType gtype,
priv->main_window = virt_viewer_app_window_new(self, priv->container, 0);
priv->main_notebook = GTK_WIDGET(virt_viewer_window_get_notebook(priv->main_window));
+ gtk_accel_map_add_entry("<virt-viewer>/file/smartcard-insert", GDK_KEY_F8, GDK_SHIFT_MASK);
+ gtk_accel_map_add_entry("<virt-viewer>/file/smartcard-remove", GDK_KEY_F9, GDK_SHIFT_MASK);
+ gtk_accel_map_add_entry("<virt-viewer>/view/fullscreen", GDK_KEY_F11, 0);
+ gtk_accel_map_add_entry("<virt-viewer>/view/release-cursor", GDK_KEY_F12, GDK_SHIFT_MASK);
+
return obj;
}
diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c
index 68a6b65..5318bff 100644
--- a/src/virt-viewer-window.c
+++ b/src/virt-viewer-window.c
@@ -273,6 +273,14 @@ virt_viewer_window_class_init (VirtViewerWindowClass *klass)
G_PARAM_STATIC_STRINGS));
}
+static gboolean
+can_activate_cb (GtkWidget *widget G_GNUC_UNUSED,
+ guint signal_id G_GNUC_UNUSED,
+ VirtViewerWindow *self G_GNUC_UNUSED)
+{
+ return TRUE;
+}
+
static void
virt_viewer_window_init (VirtViewerWindow *self)
{
@@ -298,6 +306,16 @@ virt_viewer_window_init (VirtViewerWindow *self)
priv->accel_group = GTK_ACCEL_GROUP(gtk_builder_get_object(priv->builder, "accelgroup"));
+ /* make sure they can be activated even if the menu item is not visible */
+ g_signal_connect(gtk_builder_get_object(priv->builder, "menu-view-fullscreen"),
+ "can-activate-accel", G_CALLBACK(can_activate_cb), self);
+ g_signal_connect(gtk_builder_get_object(priv->builder, "menu-file-smartcard-insert"),
+ "can-activate-accel", G_CALLBACK(can_activate_cb), self);
+ g_signal_connect(gtk_builder_get_object(priv->builder, "menu-file-smartcard-remove"),
+ "can-activate-accel", G_CALLBACK(can_activate_cb), self);
+ g_signal_connect(gtk_builder_get_object(priv->builder, "menu-view-release-cursor"),
+ "can-activate-accel", G_CALLBACK(can_activate_cb), self);
+
vbox = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer-box"));
virt_viewer_window_toolbar_setup(self);
diff --git a/src/virt-viewer.xml b/src/virt-viewer.xml
index bef89ac..cce1f0d 100644
--- a/src/virt-viewer.xml
+++ b/src/virt-viewer.xml
@@ -110,7 +110,6 @@
<property name="accel_path">&lt;virt-viewer&gt;/view/fullscreen</property>
<property name="label" translatable="yes">Full screen</property>
<property name="use_underline">True</property>
- <accelerator key="F11" signal="activate"/>
<signal name="toggled" handler="virt_viewer_window_menu_view_fullscreen" swapped="no"/>
</object>
</child>