[virt-tools-list] [PATCH virt-viewer 2/3] spice: implement can-auto-resize
Daniel P. Berrange
berrange at redhat.com
Wed Mar 12 16:57:31 UTC 2014
On Wed, Mar 12, 2014 at 05:42:03PM +0100, Marc-André Lureau wrote:
> Always return TRUE for Spice displays. See rationale in method comment.
> ---
> src/virt-viewer-display-spice.c | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> diff --git a/src/virt-viewer-display-spice.c b/src/virt-viewer-display-spice.c
> index d13fbda..81ce6de 100644
> --- a/src/virt-viewer-display-spice.c
> +++ b/src/virt-viewer-display-spice.c
> @@ -56,6 +56,7 @@ static GdkPixbuf *virt_viewer_display_spice_get_pixbuf(VirtViewerDisplay *displa
> static void virt_viewer_display_spice_release_cursor(VirtViewerDisplay *display);
> static void virt_viewer_display_spice_close(VirtViewerDisplay *display G_GNUC_UNUSED);
> static gboolean virt_viewer_display_spice_selectable(VirtViewerDisplay *display);
> +static gboolean virt_viewer_display_spice_can_auto_resize(VirtViewerDisplay *display);
>
> static void
> virt_viewer_display_spice_finalize(GObject *obj)
> @@ -80,6 +81,7 @@ virt_viewer_display_spice_class_init(VirtViewerDisplaySpiceClass *klass)
> dclass->release_cursor = virt_viewer_display_spice_release_cursor;
> dclass->close = virt_viewer_display_spice_close;
> dclass->selectable = virt_viewer_display_spice_selectable;
> + dclass->can_auto_resize = virt_viewer_display_spice_can_auto_resize;
>
> g_type_class_add_private(klass, sizeof(VirtViewerDisplaySpicePrivate));
> }
> @@ -335,6 +337,18 @@ virt_viewer_display_spice_selectable(VirtViewerDisplay *self)
> return agent_connected;
> }
>
> +static gboolean
> +virt_viewer_display_spice_can_auto_resize(VirtViewerDisplay *self G_GNUC_UNUSED)
> +{
> + /*
> + * with xorg driver and windows, it needs the Spice agent but with
> + * drm/kms driver, it is no longer required, however it requires
> + * gnome-settings-daemon (or a similar service). There is no easy
> + * way to guess all that from client side, just assume it is
> + * working:
> + */
I don't think this is good enough. Given that QXL provides a plain VGA mode
fallback, applications like virt-manager/rhev/openstack will often enable
SPICE+QXL unconditionally for all guests. As such we cannot reasonably
assume that there is a SPICE agent running in all guests, particularly if
we're going to use this flag to disable functionality of the virt-viewer
client.
If we want to do this then we need a way to query from the SPICE server
whether the guest agent is actually present & operational.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the virt-tools-list
mailing list