--- configure.ac | 2 +- src/remote-viewer-main.c | 3 +++ src/virt-viewer-main.c | 22 +++++++++++++--------- src/virt-viewer-session-spice.c | 6 +++++- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/configure.ac b/configure.ac index b2d7e8f..77838fe 100644 --- a/configure.ac +++ b/configure.ac @@ -16,7 +16,7 @@ LIBVIRT_REQUIRED="0.6.0" GTK2_REQUIRED="2.12.0" GTK3_REQUIRED="3.0" GTK_VNC_REQUIRED="0.4.3" -SPICE_GTK_REQUIRED="0.6" +SPICE_GTK_REQUIRED="0.6.174" AC_PROG_CC AM_PROG_CC_C_O diff --git a/src/remote-viewer-main.c b/src/remote-viewer-main.c index 2256528..89ef25f 100644 --- a/src/remote-viewer-main.c +++ b/src/remote-viewer-main.c @@ -91,6 +91,9 @@ main(int argc, char **argv) #ifdef HAVE_GTK_VNC g_option_context_add_group (context, vnc_display_get_option_group ()); #endif +#ifdef HAVE_SPICE_GTK + g_option_context_add_group (context, spice_get_option_group ()); +#endif g_option_context_parse (context, &argc, &argv, &error); if (error) { g_printerr("%s\n%s\n", diff --git a/src/virt-viewer-main.c b/src/virt-viewer-main.c index 7e2886b..c8e1082 100644 --- a/src/virt-viewer-main.c +++ b/src/virt-viewer-main.c @@ -25,11 +25,12 @@ #include <gtk/gtk.h> #include <glib/gi18n.h> #include <stdlib.h> - #ifdef HAVE_GTK_VNC #include <vncdisplay.h> #endif - +#ifdef HAVE_SPICE_GTK +#include <spice-option.h> +#endif #include "virt-viewer.h" static void virt_viewer_version(void) @@ -58,21 +59,21 @@ int main(int argc, char **argv) const char *help_msg = N_("Run '" PACKAGE " --help' to see a full list of available command line options"); const GOptionEntry options [] = { { "version", 'V', G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, - virt_viewer_version, N_("display version information"), NULL }, + virt_viewer_version, N_("Display version information"), NULL }, { "verbose", 'v', 0, G_OPTION_ARG_NONE, &verbose, - N_("display verbose information"), NULL }, + N_("Display verbose information"), NULL }, { "direct", 'd', 0, G_OPTION_ARG_NONE, &direct, - N_("direct connection with no automatic tunnels"), NULL }, + N_("Direct connection with no automatic tunnels"), NULL }, { "connect", 'c', 0, G_OPTION_ARG_STRING, &uri, - N_("connect to hypervisor"), "URI"}, + N_("Connect to hypervisor"), "URI"}, { "wait", 'w', 0, G_OPTION_ARG_NONE, &waitvm, - N_("wait for domain to start"), NULL }, + N_("Wait for domain to start"), NULL }, { "reconnect", 'r', 0, G_OPTION_ARG_NONE, &reconnect, - N_("reconnect to domain upon restart"), NULL }, + N_("Reconnect to domain upon restart"), NULL }, { "zoom", 'z', 0, G_OPTION_ARG_INT, &zoom, N_("Zoom level of window, in percentage"), "ZOOM" }, { "debug", '\0', 0, G_OPTION_ARG_NONE, &debug, - N_("display debugging information"), NULL }, + N_("Display debugging information"), NULL }, { "full-screen", 'f', 0, G_OPTION_ARG_NONE, &fullscreen, N_("Open in full screen mode"), NULL }, { G_OPTION_REMAINING, '\0', 0, G_OPTION_ARG_STRING_ARRAY, &args, @@ -94,6 +95,9 @@ int main(int argc, char **argv) #ifdef HAVE_GTK_VNC g_option_context_add_group (context, vnc_display_get_option_group ()); #endif +#ifdef HAVE_SPICE_GTK + g_option_context_add_group (context, spice_get_option_group ()); +#endif g_option_context_parse (context, &argc, &argv, &error); if (error) { g_printerr("%s\n%s\n", diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c index f89d042..de2da3d 100644 --- a/src/virt-viewer-session-spice.c +++ b/src/virt-viewer-session-spice.c @@ -23,9 +23,9 @@ */ #include <spice-audio.h> - #include <glib/gi18n.h> +#include <spice-option.h> #include "virt-viewer-util.h" #include "virt-viewer-session-spice.h" #include "virt-viewer-display-spice.h" @@ -154,7 +154,9 @@ virt_viewer_session_spice_close(VirtViewerSession *session) self->priv->audio = NULL; } + /* FIXME: version 0.7 of spice-gtk allows reuse of session */ self->priv->session = spice_session_new(); + spice_set_session_option(self->priv->session); g_signal_connect(self->priv->session, "channel-new", G_CALLBACK(virt_viewer_session_spice_channel_new), self); g_signal_connect(self->priv->session, "channel-destroy", @@ -351,6 +353,8 @@ virt_viewer_session_spice_new(void) self = g_object_new(VIRT_VIEWER_TYPE_SESSION_SPICE, NULL); self->priv->session = spice_session_new(); + spice_set_session_option(self->priv->session); + g_signal_connect(self->priv->session, "channel-new", G_CALLBACK(virt_viewer_session_spice_channel_new), self); g_signal_connect(self->priv->session, "channel-destroy", -- 1.7.7.3