---
 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

_______________________________________________
virt-tools-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/virt-tools-list

Reply via email to