summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPavel Grunt <pgrunt@redhat.com>2016-02-04 10:09:34 +0100
committerPavel Grunt <pgrunt@redhat.com>2016-02-15 14:01:42 +0100
commitca1ad884bda18b4327fbaa859e6e18c0c94965e4 (patch)
tree37492fb466040dd6d3851ab43735f5b8bd1644b0
parent724744ca209297322b04cd9ed11e898a3d68a281 (diff)
downloadvirt-viewer-ca1ad884bda18b4327fbaa859e6e18c0c94965e4.tar.gz
virt-viewer-ca1ad884bda18b4327fbaa859e6e18c0c94965e4.tar.xz
virt-viewer-ca1ad884bda18b4327fbaa859e6e18c0c94965e4.zip
display: Use common code to get preferred size
-rw-r--r--src/virt-viewer-display.c52
1 files changed, 31 insertions, 21 deletions
diff --git a/src/virt-viewer-display.c b/src/virt-viewer-display.c
index 654cada..a289b6f 100644
--- a/src/virt-viewer-display.c
+++ b/src/virt-viewer-display.c
@@ -448,24 +448,39 @@ virt_viewer_display_make_resizable(VirtViewerDisplay *self)
#else
+static void virt_viewer_display_get_preferred_dimension_from_desktop(VirtViewerDisplay *display,
+ const int minimal_size,
+ const int desktop_dim,
+ int *minimal_dim,
+ int *preferred_dim)
+{
+ int border_width = gtk_container_get_border_width(GTK_CONTAINER(display));
+
+ if (virt_viewer_display_get_zoom(display)) {
+ guint zoom_level = virt_viewer_display_get_zoom_level(display);
+ *preferred_dim = round(desktop_dim * zoom_level / (double) NORMAL_ZOOM_LEVEL);
+ *minimal_dim = round(minimal_size * zoom_level / (double) NORMAL_ZOOM_LEVEL);
+ } else {
+ *preferred_dim = desktop_dim;
+ *minimal_dim = minimal_size;
+ }
+ *preferred_dim += 2 * border_width;
+ *minimal_dim += 2 * border_width;
+}
+
+
static void virt_viewer_display_get_preferred_width(GtkWidget *widget,
int *minwidth,
int *defwidth)
{
VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
VirtViewerDisplayPrivate *priv = display->priv;
- int border_width = gtk_container_get_border_width(GTK_CONTAINER(widget));
-
- if (priv->zoom) {
- *defwidth = round(priv->desktopWidth * priv->zoom_level / (double) NORMAL_ZOOM_LEVEL);
- *minwidth = round(MIN_DISPLAY_WIDTH * priv->zoom_level / (double) NORMAL_ZOOM_LEVEL);
- } else {
- *defwidth = priv->desktopWidth;
- *minwidth = MIN_DISPLAY_WIDTH;
- }
- *defwidth += 2 * border_width;
- *minwidth += 2 * border_width;
+ virt_viewer_display_get_preferred_dimension_from_desktop(display,
+ MIN_DISPLAY_WIDTH,
+ priv->desktopWidth,
+ minwidth,
+ defwidth);
}
@@ -475,17 +490,12 @@ static void virt_viewer_display_get_preferred_height(GtkWidget *widget,
{
VirtViewerDisplay *display = VIRT_VIEWER_DISPLAY(widget);
VirtViewerDisplayPrivate *priv = display->priv;
- int border_height = gtk_container_get_border_width(GTK_CONTAINER(widget));
- if (priv->zoom) {
- *defheight = round(priv->desktopHeight * priv->zoom_level / (double) NORMAL_ZOOM_LEVEL);
- *minheight = round(MIN_DISPLAY_HEIGHT * priv->zoom_level / (double) NORMAL_ZOOM_LEVEL);
- } else {
- *defheight = priv->desktopHeight;
- *minheight = MIN_DISPLAY_HEIGHT;
- }
- *defheight += 2 * border_height;
- *minheight += 2 * border_height;
+ virt_viewer_display_get_preferred_dimension_from_desktop(display,
+ MIN_DISPLAY_HEIGHT,
+ priv->desktopHeight,
+ minheight,
+ defheight);
}
#endif