diff --git a/configure.ac b/configure.ac index 7449251..84d1a08 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 @@ -90,6 +90,9 @@ main(int argc, char **argv) g_option_context_add_group (context, gtk_get_option_group (TRUE)); #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) { diff --git a/src/virt-viewer-main.c b/src/virt-viewer-main.c index 7e2886b..07534b4 100644 --- a/src/virt-viewer-main.c +++ b/src/virt-viewer-main.c @@ -25,11 +25,12 @@ #include #include #include - #ifdef HAVE_GTK_VNC #include #endif - +#ifdef HAVE_SPICE_GTK +#include +#endif #include "virt-viewer.h" static void virt_viewer_version(void) @@ -93,6 +94,9 @@ int main(int argc, char **argv) g_option_context_add_group (context, gtk_get_option_group (TRUE)); #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) { 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 - #include +#include #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",