[virt-tools-list] [virt-viewer 4/4] Hide all windows on disconnection
Marc-André Lureau
mlureau at redhat.com
Tue Oct 29 14:09:21 UTC 2013
----- Original Message -----
> When starting remote-viewer without argument, we are showing a
> window where the user can enter connection details. We then
> go on to try and connect to the URI the user specified, and if
> the connection fails, we disconnect from the remote server, and then
> we show again the connection window so that the user can correct the
> URI if he entered it wrong.
> However, when this happens, the window for the previous connection
> will still be visible even if connection failed. To avoid this,
> this commit makes sure we hide all windows when we get a disconnection
> event.
>
> Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1024309
> ---
> src/virt-viewer-app.c | 13 +++++++++++++
> 1 file changed, 13 insertions(+)
>
> diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
> index 978c322..3f0debc 100644
> --- a/src/virt-viewer-app.c
> +++ b/src/virt-viewer-app.c
> @@ -365,6 +365,18 @@ virt_viewer_app_window_set_visible(VirtViewerApp *self,
> return FALSE;
> }
>
> +static void
> +virt_viewer_app_hide_all_windows(VirtViewerApp *app)
> +{
> + GList *it;
> + virt_viewer_window_hide(app->priv->main_window);
> + for (it = g_hash_table_get_values(app->priv->windows);
> + it != NULL;
> + it = it->next) {
> + virt_viewer_window_hide(VIRT_VIEWER_WINDOW(it->data));
> + }
> +}
>From glib doc:
The content of the list is owned by the hash table and should not be modified or freed. Use g_list_free() when done using the list.
Using g_hash_table_iter_* () is probably better.
> +
> G_MODULE_EXPORT void
> virt_viewer_app_about_close(GtkWidget *dialog,
> VirtViewerApp *self G_GNUC_UNUSED)
> @@ -1216,6 +1228,7 @@ virt_viewer_app_disconnected(VirtViewerSession *session
> G_GNUC_UNUSED,
> VirtViewerAppPrivate *priv = self->priv;
> gboolean connect_error = !priv->connected && !priv->cancelled;
>
> + virt_viewer_app_hide_all_windows(self);
> if (priv->quitting)
> gtk_main_quit();
>
> --
> 1.8.3.1
>
> _______________________________________________
> virt-tools-list mailing list
> virt-tools-list at redhat.com
> https://www.redhat.com/mailman/listinfo/virt-tools-list
>
More information about the virt-tools-list
mailing list