diff options
author | Pavel Grunt <pgrunt@redhat.com> | 2016-02-04 10:09:34 +0100 |
---|---|---|
committer | Pavel Grunt <pgrunt@redhat.com> | 2016-02-15 14:01:42 +0100 |
commit | ca1ad884bda18b4327fbaa859e6e18c0c94965e4 (patch) | |
tree | 37492fb466040dd6d3851ab43735f5b8bd1644b0 /src | |
parent | 724744ca209297322b04cd9ed11e898a3d68a281 (diff) | |
download | virt-viewer-ca1ad884bda18b4327fbaa859e6e18c0c94965e4.tar.gz virt-viewer-ca1ad884bda18b4327fbaa859e6e18c0c94965e4.tar.xz virt-viewer-ca1ad884bda18b4327fbaa859e6e18c0c94965e4.zip |
display: Use common code to get preferred size
Diffstat (limited to 'src')
-rw-r--r-- | src/virt-viewer-display.c | 52 |
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 |