summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorHans de Goede <hdegoede@redhat.com>2013-04-22 16:08:33 +0200
committerHans de Goede <hdegoede@redhat.com>2013-04-23 13:49:24 +0200
commit24182b5be84232fcfcc9e85f773ab0efedcf9748 (patch)
treed909a950de80811b7ba758fbf9b4196cd5fcb4fd /src
parentf0a103fa8683876a5eccdd3584ad12805ca1258f (diff)
downloadvirt-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.c48
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)