Blob Blame History Raw
From dc45278502108076a95f8878a4ef2d6720034d9e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= <marcandre.lureau@gmail.com>
Date: Mon, 15 Jul 2013 20:54:10 +0200
Subject: [PATCH] kiosk: open a window on each client monitor

Open a window on each client monitor in fullscreen. If the remote
display has less monitors than the client, the extra client monitors
will still be used to prevent the user from accessing the windows or
desktop below, and also to show some status messages when necessary.

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

diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
index d3755d8..2d68625 100644
--- a/src/virt-viewer-app.c
+++ b/src/virt-viewer-app.c
@@ -1266,7 +1266,22 @@ static void virt_viewer_app_usb_failed(VirtViewerSession *session G_GNUC_UNUSED,
 static void
 virt_viewer_app_set_kiosk(VirtViewerApp *self, gboolean enabled)
 {
+    int i;
+
     self->priv->kiosk = enabled;
+    virt_viewer_app_set_fullscreen(self, enabled);
+
+    for (i = 0; i < gdk_screen_get_n_monitors(gdk_screen_get_default()); i++) {
+        VirtViewerWindow *win = virt_viewer_app_get_nth_window(self, i);
+
+        if (win == NULL)
+            win = virt_viewer_app_window_new(self, i);
+
+        if (enabled)
+            virt_viewer_window_show(win);
+
+        virt_viewer_window_set_kiosk(win, enabled);
+    }
 }