Don't set VNC display to ready until vnc is initialized

We were setting the show_hint to READY as soon as we got the vnc-connected
signal.  But there may be an authentication step between vnc-connected and
vnc-initialized.  In this case, we switch to an empty black display during the
authentication step instead of showing the 'waiting for display N' status.
This commit is contained in:
Jonathon Jongsma 2014-01-31 14:48:35 -06:00
parent ed9b3f3450
commit 51c3a0decf
2 changed files with 10 additions and 2 deletions

View File

@ -112,6 +112,14 @@ virt_viewer_display_vnc_key_ungrab(VncDisplay *vnc G_GNUC_UNUSED,
g_signal_emit_by_name(display, "display-keyboard-ungrab");
}
static void
virt_viewer_display_vnc_initialized(VncDisplay *vnc G_GNUC_UNUSED,
VirtViewerDisplay *display)
{
virt_viewer_display_set_show_hint(display,
VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, TRUE);
}
static void
virt_viewer_display_vnc_send_keys(VirtViewerDisplay* display,
const guint *keyvals,
@ -194,6 +202,8 @@ virt_viewer_display_vnc_new(VncDisplay *vnc)
G_CALLBACK(virt_viewer_display_vnc_key_grab), display);
g_signal_connect(display->priv->vnc, "vnc-keyboard-ungrab",
G_CALLBACK(virt_viewer_display_vnc_key_ungrab), display);
g_signal_connect(display->priv->vnc, "vnc-initialized",
G_CALLBACK(virt_viewer_display_vnc_initialized), display);
return GTK_WIDGET(display);
}

View File

@ -100,8 +100,6 @@ virt_viewer_session_vnc_connected(VncDisplay *vnc G_GNUC_UNUSED,
{
GtkWidget *display = virt_viewer_display_vnc_new(session->priv->vnc);
g_signal_emit_by_name(session, "session-connected");
virt_viewer_display_set_show_hint(VIRT_VIEWER_DISPLAY(display),
VIRT_VIEWER_DISPLAY_SHOW_HINT_READY, TRUE);
virt_viewer_session_add_display(VIRT_VIEWER_SESSION(session),
VIRT_VIEWER_DISPLAY(display));
}