Blob Blame History Raw
From dbd70fcab24cdb32d3849349d133b9803511281a Mon Sep 17 00:00:00 2001
From: Jonathon Jongsma <jjongsma@redhat.com>
Date: Fri, 18 Oct 2013 11:18:37 -0500
Subject: [PATCH] Set Spice display to fullscreen if owning window is pending
 fullscreen

When you call virt_viewer_window_enter_fullscreen() on a hidden window, it
didn't actually change its fullscreen state.  Instead, it sets up a map-event
handler to enter fullscreen after it is shown. When _set_display() is called on
a window that is pending fullscreen status, it initially sets the fullscreen
state of the display to FALSE, which can cause an unwanted resize to be sent
down to the guest. This patch changes the behavior to set its fullscreen state
to TRUE even before the window is shown.

(cherry picked from commit 34bbb275a6d2e10d69fe5eb919d0351185c1b5f0)
https://bugzilla.redhat.com/show_bug.cgi?id=920988
---
 src/virt-viewer-window.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c
index 2a91fba..2bb5986 100644
--- a/src/virt-viewer-window.c
+++ b/src/virt-viewer-window.c
@@ -516,6 +516,7 @@ mapped(GtkWidget *widget, GdkEvent *event G_GNUC_UNUSED,
        VirtViewerWindow *self)
 {
     g_signal_handlers_disconnect_by_func(widget, mapped, self);
+    self->priv->fullscreen = FALSE;
     virt_viewer_window_enter_fullscreen(self, self->priv->fullscreen_monitor);
     return FALSE;
 }
@@ -531,14 +532,13 @@ virt_viewer_window_enter_fullscreen(VirtViewerWindow *self, gint monitor)
         return;
 
     priv->fullscreen_monitor = monitor;
+    priv->fullscreen = TRUE;
 
     if (!gtk_widget_get_mapped(priv->window)) {
         g_signal_connect(priv->window, "map-event", G_CALLBACK(mapped), self);
         return;
     }
 
-    priv->fullscreen = TRUE;
-
     gtk_check_menu_item_set_active(check, TRUE);
     gtk_widget_hide(menu);
     gtk_widget_show(priv->toolbar);