summaryrefslogtreecommitdiffstats
path: root/src/virt-viewer-display-spice.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2012-03-18 19:01:28 +0100
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-03-21 16:21:32 +0100
commit7ffd3d4f7e513cb729264d545a6ffb66560f74bc (patch)
tree38bc508f6fbf71d90811e40628dde43eacf69f22 /src/virt-viewer-display-spice.c
parentcf8e5b029c59bb8ebc737e184c67574b8d745769 (diff)
downloadvirt-viewer-7ffd3d4f7e513cb729264d545a6ffb66560f74bc.tar.gz
virt-viewer-7ffd3d4f7e513cb729264d545a6ffb66560f74bc.tar.xz
virt-viewer-7ffd3d4f7e513cb729264d545a6ffb66560f74bc.zip
Display correct key bindings to release cursor
If the accels are enabled (with Spice controller custom bindings), show the configured keybinding in the title bar.
Diffstat (limited to 'src/virt-viewer-display-spice.c')
-rw-r--r--src/virt-viewer-display-spice.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/virt-viewer-display-spice.c b/src/virt-viewer-display-spice.c
index a5aa075..981fb57 100644
--- a/src/virt-viewer-display-spice.c
+++ b/src/virt-viewer-display-spice.c
@@ -181,6 +181,19 @@ virt_viewer_display_spice_size_allocate(VirtViewerDisplaySpice *self,
0, 0, dw, dh);
}
+static void
+enable_accel_changed(VirtViewerApp *app,
+ GParamSpec *pspec G_GNUC_UNUSED,
+ VirtViewerDisplaySpice *self)
+{
+ if (virt_viewer_app_get_enable_accel(app)) {
+ /* disable default grab sequence */
+ spice_display_set_grab_keys(self->priv->display,
+ spice_grab_sequence_new(0, NULL));
+ } else {
+ spice_display_set_grab_keys(self->priv->display, NULL);
+ }
+}
GtkWidget *
virt_viewer_display_spice_new(VirtViewerSessionSpice *session,
@@ -188,6 +201,7 @@ virt_viewer_display_spice_new(VirtViewerSessionSpice *session,
SpiceDisplay *display)
{
VirtViewerDisplaySpice *self;
+ VirtViewerApp *app;
gint channelid;
g_return_val_if_fail(SPICE_IS_DISPLAY_CHANNEL(channel), NULL);
@@ -227,6 +241,10 @@ virt_viewer_display_spice_new(VirtViewerSessionSpice *session,
G_CALLBACK(virt_viewer_display_spice_size_allocate), self);
+ app = virt_viewer_session_get_app(VIRT_VIEWER_SESSION(session));
+ g_signal_connect(app, "notify::enable-accel", G_CALLBACK(enable_accel_changed), self);
+ enable_accel_changed(app, NULL, self);
+
return GTK_WIDGET(self);
}