--- src/virt-viewer-app.c | 17 ++++++++++++++++- 1 files changed, 16 insertions(+), 1 deletions(-) diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c index 3b468b3..ed7050f 100644 --- a/src/virt-viewer-app.c +++ b/src/virt-viewer-app.c @@ -88,6 +88,9 @@ static void virt_viewer_app_server_cut_text(VirtViewerSession *session, static void virt_viewer_app_bell(VirtViewerSession *session, VirtViewerApp *self); +static void virt_viewer_app_cancelled(VirtViewerSession *session, + VirtViewerApp *self); + static void virt_viewer_app_channel_open(VirtViewerSession *session, VirtViewerSessionChannel *channel, VirtViewerApp *self); @@ -112,6 +115,7 @@ struct _VirtViewerAppPrivate { VirtViewerSession *session; gboolean active; gboolean connected; + gboolean cancelled; guint reconnect_poll; /* source id */ char *unixsock; char *ghost; @@ -619,6 +623,8 @@ virt_viewer_app_create_session(VirtViewerApp *self, const gchar *type) G_CALLBACK(virt_viewer_app_server_cut_text), self); g_signal_connect(priv->session, "session-bell", G_CALLBACK(virt_viewer_app_bell), self); + g_signal_connect(priv->session, "session-cancelled", + G_CALLBACK(virt_viewer_app_cancelled), self); return 0; } @@ -714,6 +720,7 @@ virt_viewer_app_activate(VirtViewerApp *self) virt_viewer_app_show_status(self, _("Connecting to graphic server")); priv->connected = FALSE; + priv->cancelled = FALSE; priv->active = TRUE; priv->grabbed = FALSE; virt_viewer_app_update_title(self); @@ -909,7 +916,7 @@ virt_viewer_app_disconnected(VirtViewerSession *session G_GNUC_UNUSED, { VirtViewerAppPrivate *priv = self->priv; - if (!priv->connected) { + if (!priv->connected && !priv->cancelled) { virt_viewer_app_simple_message_dialog(self, _("Unable to connect to the graphic server %s"), priv->pretty_address); @@ -917,6 +924,14 @@ virt_viewer_app_disconnected(VirtViewerSession *session G_GNUC_UNUSED, virt_viewer_app_deactivate(self); } +static void virt_viewer_app_cancelled(VirtViewerSession *session, + VirtViewerApp *self) +{ + VirtViewerAppPrivate *priv = self->priv; + priv->cancelled = TRUE; + virt_viewer_app_disconnected(session, self); +} + static void virt_viewer_app_auth_refused(VirtViewerSession *session G_GNUC_UNUSED, const char *msg, -- 1.7.7.5