diff options
author | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-07-23 16:18:00 +0200 |
---|---|---|
committer | Marc-André Lureau <marcandre.lureau@gmail.com> | 2013-07-30 21:09:12 +0200 |
commit | dc59eeb3b88ab61403011ac1ec3652120339ae34 (patch) | |
tree | bcabf0746167710a872041b90ba6c55080ccb283 /src/virt-viewer-display-spice.c | |
parent | c8e5b8e3b035cb953f66702c6a5f903df26c3a15 (diff) | |
download | virt-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.c | 18 |
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; } |