diff options
| author | Hans de Goede <hdegoede@redhat.com> | 2013-04-22 16:08:33 +0200 |
|---|---|---|
| committer | Hans de Goede <hdegoede@redhat.com> | 2013-04-23 13:49:24 +0200 |
| commit | 24182b5be84232fcfcc9e85f773ab0efedcf9748 (patch) | |
| tree | d909a950de80811b7ba758fbf9b4196cd5fcb4fd /src | |
| parent | f0a103fa8683876a5eccdd3584ad12805ca1258f (diff) | |
| download | virt-viewer-24182b5be84232fcfcc9e85f773ab0efedcf9748.tar.gz virt-viewer-24182b5be84232fcfcc9e85f773ab0efedcf9748.tar.xz virt-viewer-24182b5be84232fcfcc9e85f773ab0efedcf9748.zip | |
virt-viewer-window: cleanup zoom handling
We've 3 similar zoom function zoom in / out / reset. in / out do not
schedule a window resize when there is no display, where as reset does,
which is not consistent. Also there is some duplicate code between them.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/virt-viewer-window.c | 48 |
1 files changed, 18 insertions, 30 deletions
diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c index e060eb7..4a17626 100644 --- a/src/virt-viewer-window.c +++ b/src/virt-viewer-window.c @@ -355,46 +355,21 @@ G_MODULE_EXPORT void virt_viewer_window_menu_view_zoom_out(GtkWidget *menu G_GNUC_UNUSED, VirtViewerWindow *self) { - VirtViewerWindowPrivate *priv = self->priv; - - if (priv->zoomlevel > 10) - priv->zoomlevel -= 10; - - if (!priv->display) - return; - - gtk_window_resize(GTK_WINDOW(priv->window), 1, 1); - if (priv->display) - virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); + virt_viewer_window_set_zoom_level(self, self->priv->zoomlevel - 10); } G_MODULE_EXPORT void virt_viewer_window_menu_view_zoom_in(GtkWidget *menu G_GNUC_UNUSED, VirtViewerWindow *self) { - VirtViewerWindowPrivate *priv = self->priv; - - if (priv->zoomlevel < 400) - priv->zoomlevel += 10; - - if (!priv->display) - return; - - gtk_window_resize(GTK_WINDOW(priv->window), 1, 1); - if (priv->display) - virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); + virt_viewer_window_set_zoom_level(self, self->priv->zoomlevel + 10); } G_MODULE_EXPORT void virt_viewer_window_menu_view_zoom_reset(GtkWidget *menu G_GNUC_UNUSED, VirtViewerWindow *self) { - VirtViewerWindowPrivate *priv = self->priv; - gtk_window_resize(GTK_WINDOW(priv->window), 1, 1); - priv->zoomlevel = 100; - - if (priv->display) - virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); + virt_viewer_window_set_zoom_level(self, 100); } /* @@ -1203,10 +1178,23 @@ virt_viewer_window_hide(VirtViewerWindow *self) void virt_viewer_window_set_zoom_level(VirtViewerWindow *self, gint zoom_level) { + VirtViewerWindowPrivate *priv; + g_return_if_fail(VIRT_VIEWER_IS_WINDOW(self)); + priv = self->priv; + + if (zoom_level < 10) + zoom_level = 10; + if (zoom_level > 400) + zoom_level = 400; + priv->zoomlevel = zoom_level; + + if (!priv->display) + return; + + gtk_window_resize(GTK_WINDOW(priv->window), 1, 1); - /* FIXME: turn into a dynamic property */ - self->priv->zoomlevel = zoom_level; + virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel); } gint virt_viewer_window_get_zoom_level(VirtViewerWindow *self) |
