[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[virt-tools-list] [virt-viewer v3 4/4] Hide all windows on disconnection

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

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1024309
Changes since v2:
- use g_hash_table_foreach() rather than g_hash_table_get_values()

 src/virt-viewer-app.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
index 978c322..da5e903 100644
--- a/src/virt-viewer-app.c
+++ b/src/virt-viewer-app.c
@@ -365,6 +365,19 @@ virt_viewer_app_window_set_visible(VirtViewerApp *self,
     return FALSE;
+static void hide_one_window(gpointer key G_GNUC_UNUSED,
+                            gpointer value,
+                            gpointer user_data G_GNUC_UNUSED)
+    virt_viewer_window_hide(VIRT_VIEWER_WINDOW(value));
+static void
+virt_viewer_app_hide_all_windows(VirtViewerApp *app)
+    g_hash_table_foreach(app->priv->windows, hide_one_window, NULL);
 virt_viewer_app_about_close(GtkWidget *dialog,
                             VirtViewerApp *self G_GNUC_UNUSED)
@@ -1216,6 +1229,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)

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]