[virt-tools-list] [PATCH virt-viewer] Fix tiny windows for secondary displays

Jonathon Jongsma jjongsma at redhat.com
Tue Jun 10 16:40:20 UTC 2014


When enabling a new display on linux guests, the new window would be tiny
(50x50) and zoomed way out. This was caused by the fact that when the display
widget received the 'map' event, it unconditionally cleared the 'dirty' flag,
which meant that it would only request 50x50 size. This behavior was intended to
fix a bug on the windows client which resulted in windows not being able to be
resized smaller than the guest display resolution. Unfortunately, due to the
timing of the 'map' and allocate events, the widget became very small.

Instead of clearing the 'dirty' flag directly when a widget is mapped, we
now queue a resize event, which will guarantee that the widget attains its
desired size and will then clear its dirty flag (allowing it to be resized).
Testing on windows indicates that this fix still solves the 'unshrinkable
window' problem while also preventing the tiny secondary display bug.

Resolves: rhbz#1104064
---
 src/virt-viewer-display.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/virt-viewer-display.c b/src/virt-viewer-display.c
index f298bb0..48b7090 100644
--- a/src/virt-viewer-display.c
+++ b/src/virt-viewer-display.c
@@ -454,7 +454,7 @@ virt_viewer_display_map(GtkWidget *widget)
 {
     GTK_WIDGET_CLASS(virt_viewer_display_parent_class)->map(widget);
 
-    virt_viewer_display_make_resizable(VIRT_VIEWER_DISPLAY(widget));
+    virt_viewer_display_queue_resize(VIRT_VIEWER_DISPLAY(widget));
 }
 
 #else
-- 
1.9.3




More information about the virt-tools-list mailing list