[virt-tools-list] [virt-viewer][PATCH v2] window: Standardize "Leave Fullscreen" behaviour
Fabiano Fidêncio
fidencio at redhat.com
Mon Nov 2 05:43:48 UTC 2015
Historically fullscreen mode used to be an app-level option (you could
only have *all* windows fullscreen or *all* windows non-fullscreen). At
some point per-window fullscreen was introduced, but the startup
fullscreen remained with the old (app-level) behaviour.
According to the multimonitor requirements[0], item D5, the --fullscreen
behaviour needs to be changed to match the per-window fullscreen
behaviour, what is done by this patch.
[0]:
https://www.redhat.com/archives/virt-tools-list/2015-June/msg00074.html
Resolves: rhbz#1275248
---
Changes since v1:
- Set both the app and the window to non-fullscreen mode
---
src/virt-viewer-app.c | 7 ++++++-
src/virt-viewer-window.c | 5 +----
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
index 0670358..835fced 100644
--- a/src/virt-viewer-app.c
+++ b/src/virt-viewer-app.c
@@ -2187,7 +2187,12 @@ virt_viewer_app_set_fullscreen(VirtViewerApp *self, gboolean fullscreen)
/* we iterate unconditionnaly, even if it was set before to update new windows */
priv->fullscreen = fullscreen;
- g_list_foreach(priv->windows, fullscreen_cb, &options);
+
+ /* For "leaving fullscreen", do not iterate over the windows, keeping the same
+ * behavior as the normal (non-fullscreen) mode. So, developer, take it as
+ * reminder that you must set both the app the window to non-fullscreen mode. */
+ if (fullscreen)
+ g_list_foreach(priv->windows, fullscreen_cb, &options);
g_object_notify(G_OBJECT(self), "fullscreen");
}
diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c
index a1b9940..31c0c46 100644
--- a/src/virt-viewer-window.c
+++ b/src/virt-viewer-window.c
@@ -784,12 +784,9 @@ virt_viewer_window_set_fullscreen(VirtViewerWindow *self,
if (fullscreen) {
virt_viewer_window_enter_fullscreen(self, -1);
} else {
- /* leave all windows fullscreen state */
if (virt_viewer_app_get_fullscreen(self->priv->app))
g_object_set(self->priv->app, "fullscreen", FALSE, NULL);
- /* or just this window */
- else
- virt_viewer_window_leave_fullscreen(self);
+ virt_viewer_window_leave_fullscreen(self);
}
}
--
2.5.0
More information about the virt-tools-list
mailing list