Fix creation of window when using single QXL card with 2 heads

With a single QXL card with > 1 head, initially only the first head
is active. As a result virt-viewer will not create the windows when
it first connects. They have to be created explicitly when user
requests to activate the window.

Fixes: https://gitlab.com/virt-viewer/virt-viewer/-/issues/46
Fixes: https://gitlab.com/virt-viewer/virt-viewer/-/issues/37
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2021-06-28 18:45:25 +01:00
parent 7c38d07b86
commit 70fe65f188

View File

@ -2372,6 +2372,7 @@ virt_viewer_app_action_monitor(GSimpleAction *act,
{
VirtViewerApp *self;
VirtViewerWindow *win;
VirtViewerDisplay *display;
VirtViewerAppPrivate *priv;
int nth;
@ -2383,7 +2384,8 @@ virt_viewer_app_action_monitor(GSimpleAction *act,
return;
nth = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(act), "nth"));
win = virt_viewer_app_get_nth_window(self, nth);
display = VIRT_VIEWER_DISPLAY(g_hash_table_lookup(priv->displays, GINT_TO_POINTER(nth)));
win = ensure_window_for_display(self, display);
virt_viewer_app_action_window(self, win, act, state);
}