summaryrefslogtreecommitdiffstats
path: root/src/virt-viewer-display-spice.c
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2013-07-23 16:18:00 +0200
committerMarc-André Lureau <marcandre.lureau@gmail.com>2013-07-30 21:09:12 +0200
commitdc59eeb3b88ab61403011ac1ec3652120339ae34 (patch)
treebcabf0746167710a872041b90ba6c55080ccb283 /src/virt-viewer-display-spice.c
parentc8e5b8e3b035cb953f66702c6a5f903df26c3a15 (diff)
downloadvirt-viewer-dc59eeb3b88ab61403011ac1ec3652120339ae34.tar.gz
virt-viewer-dc59eeb3b88ab61403011ac1ec3652120339ae34.tar.xz
virt-viewer-dc59eeb3b88ab61403011ac1ec3652120339ae34.zip
spice: factor out spice resize code from gtk signal handler
This will allow that part of the code to be called with a different resize-guest setting.
Diffstat (limited to 'src/virt-viewer-display-spice.c')
-rw-r--r--src/virt-viewer-display-spice.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/virt-viewer-display-spice.c b/src/virt-viewer-display-spice.c
index 5eb22cf..00fcfae 100644
--- a/src/virt-viewer-display-spice.c
+++ b/src/virt-viewer-display-spice.c
@@ -181,9 +181,9 @@ virt_viewer_display_spice_mouse_grab(SpiceDisplay *display G_GNUC_UNUSED,
static void
-virt_viewer_display_spice_size_allocate(VirtViewerDisplaySpice *self,
- GtkAllocation *allocation,
- gpointer data G_GNUC_UNUSED)
+virt_viewer_display_spice_resize(VirtViewerDisplaySpice *self,
+ GtkAllocation *allocation,
+ gboolean resize_guest)
{
gdouble dw = allocation->width, dh = allocation->height;
guint zoom = 100;
@@ -228,7 +228,7 @@ virt_viewer_display_spice_size_allocate(VirtViewerDisplaySpice *self,
g_object_get(self, "nth-display", &nth, NULL);
- if (self->priv->auto_resize != AUTO_RESIZE_NEVER) {
+ if (resize_guest) {
g_object_set(get_main(VIRT_VIEWER_DISPLAY(self)),
"disable-display-position", disable_display_position,
"disable-display-align", !disable_display_position,
@@ -236,6 +236,16 @@ virt_viewer_display_spice_size_allocate(VirtViewerDisplaySpice *self,
spice_main_set_display(get_main(VIRT_VIEWER_DISPLAY(self)),
nth, x, y, dw, dh);
}
+}
+
+static void
+virt_viewer_display_spice_size_allocate(VirtViewerDisplaySpice *self,
+ GtkAllocation *allocation,
+ gpointer data G_GNUC_UNUSED)
+{
+ virt_viewer_display_spice_resize(self, allocation,
+ self->priv->auto_resize != AUTO_RESIZE_NEVER);
+
if (self->priv->auto_resize == AUTO_RESIZE_FULLSCREEN)
self->priv->auto_resize = AUTO_RESIZE_NEVER;
}