Blob Blame History Raw
From 9d1bcdd906535232a886f3b170b85afe9896fcd7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>
Date: Mon, 19 Aug 2013 19:44:25 +0200
Subject: [PATCH] Return existing window in app_window_new()

Since the returned window is weak, it can already returns existing
windows (instead of creating one and failing to insert).

This allows the following set_kiosk() function to create a main window
before the app constructor is called.

(cherry picked from commit cd7b5761af9691745f1cee7fa863298db417f8d1)
https://bugzilla.redhat.com/show_bug.cgi?id=1040926
---
 src/virt-viewer-app.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
index 637896e..fd98e62 100644
--- a/src/virt-viewer-app.c
+++ b/src/virt-viewer-app.c
@@ -658,6 +658,10 @@ virt_viewer_app_window_new(VirtViewerApp *self, gint nth)
     VirtViewerWindow* window;
     GtkWindow *w;
 
+    window = virt_viewer_app_get_nth_window(self, nth);
+    if (window)
+        return window;
+
     window = g_object_new(VIRT_VIEWER_TYPE_WINDOW, "app", self, NULL);
     if (self->priv->main_window)
         virt_viewer_window_set_zoom_level(window, virt_viewer_window_get_zoom_level(self->priv->main_window));