summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2012-10-16 20:34:01 +0200
committerMarc-André Lureau <marcandre.lureau@gmail.com>2012-10-16 20:41:47 +0200
commit143bc8a33f8b6b522dc96a3cabfa46deedb00bcc (patch)
treee4f7afd2d1f9df2d89d182b04ff837f0949d7e91 /src
parentdcbd306051ec7352d11cda3c78be7a705a4daa84 (diff)
downloadvirt-viewer-143bc8a33f8b6b522dc96a3cabfa46deedb00bcc.tar.gz
virt-viewer-143bc8a33f8b6b522dc96a3cabfa46deedb00bcc.tar.xz
virt-viewer-143bc8a33f8b6b522dc96a3cabfa46deedb00bcc.zip
Do not resize window to minimum when toggling auto-resize
The virt_viewer_display_idle() will queue a resize event that will result in display size requisition of 50x50. If we later resize the window to 1x1 in virt_viewer_window_resize() we end up with a tiny window. It is legitimate not to force that 1x1 window resize when toggling the option. After the rest of the logic in virt_viewer_window_resize(), if the remote desktop ends up being resize, that will trigger another virt_viewer_set_desktop_size() and finally change the window size appropriately. https://bugzilla.redhat.com/show_bug.cgi?id=856610
Diffstat (limited to 'src')
-rw-r--r--src/virt-viewer-window.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c
index 7c6e41f..2aafe94 100644
--- a/src/virt-viewer-window.c
+++ b/src/virt-viewer-window.c
@@ -61,7 +61,7 @@ void virt_viewer_window_menu_view_release_cursor(GtkWidget *menu, VirtViewerWind
/* Internal methods */
static void virt_viewer_window_enable_modifiers(VirtViewerWindow *self);
static void virt_viewer_window_disable_modifiers(VirtViewerWindow *self);
-static void virt_viewer_window_resize(VirtViewerWindow *self);
+static void virt_viewer_window_resize(VirtViewerWindow *self, gboolean keep_win_size);
static void virt_viewer_window_toolbar_setup(VirtViewerWindow *self);
static GtkMenu* virt_viewer_window_get_keycombo_menu(VirtViewerWindow *self);
@@ -346,7 +346,7 @@ virt_viewer_window_desktop_resize(VirtViewerDisplay *display G_GNUC_UNUSED,
self->priv->desktop_resize_pending = TRUE;
return;
}
- virt_viewer_window_resize(self);
+ virt_viewer_window_resize(self, FALSE);
}
@@ -403,7 +403,7 @@ virt_viewer_window_menu_view_zoom_reset(GtkWidget *menu G_GNUC_UNUSED,
* scale down to fit, maintaining aspect ratio
*/
static void
-virt_viewer_window_resize(VirtViewerWindow *self)
+virt_viewer_window_resize(VirtViewerWindow *self, gboolean keep_win_size)
{
GdkRectangle fullscreen;
GdkScreen *screen;
@@ -423,7 +423,8 @@ virt_viewer_window_resize(VirtViewerWindow *self)
return;
}
- gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
+ if (!keep_win_size)
+ gtk_window_resize(GTK_WINDOW(priv->window), 1, 1);
virt_viewer_display_get_desktop_size(VIRT_VIEWER_DISPLAY(priv->display),
&desktopWidth, &desktopHeight);
@@ -741,7 +742,7 @@ virt_viewer_window_menu_view_resize(GtkWidget *menu,
if (gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu))) {
priv->auto_resize = TRUE;
- virt_viewer_window_resize(self);
+ virt_viewer_window_resize(self, TRUE);
} else {
priv->auto_resize = FALSE;
}
@@ -1071,7 +1072,7 @@ virt_viewer_window_show(VirtViewerWindow *self)
virt_viewer_display_set_enabled(self->priv->display, TRUE);
if (self->priv->desktop_resize_pending) {
- virt_viewer_window_resize(self);
+ virt_viewer_window_resize(self, FALSE);
self->priv->desktop_resize_pending = FALSE;
}
}