[virt-tools-list] [PATCH 3/3]virt-viewer: Disconnect virt-viewer when receiving signal 'session-cancelled'.

Marc-André Lureau marcandre.lureau at gmail.com
Mon Jan 16 13:34:01 UTC 2012


ack.

Please send an update patch series.

thanks

On Sun, Jan 15, 2012 at 7:29 AM, Guannan Ren <gren at redhat.com> wrote:
> Close virt-viewer without any message dialog when the cancel button
> is clicked.
> ---
>  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
> virt-tools-list at redhat.com
> https://www.redhat.com/mailman/listinfo/virt-tools-list



-- 
Marc-André Lureau




More information about the virt-tools-list mailing list