[virt-tools-list] [PATCH virt-viewer v2] app: Compute monitor mapping only in fullscreen
Pavel Grunt
pgrunt at redhat.com
Mon Feb 15 10:53:41 UTC 2016
---
v2: move monitor config setting from _set_uuid_string()
---
src/virt-viewer-app.c | 26 ++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
index c49d3e8..55559d6 100644
--- a/src/virt-viewer-app.c
+++ b/src/virt-viewer-app.c
@@ -473,15 +473,13 @@ virt_viewer_app_get_monitor_mapping_for_section(VirtViewerApp *self, const gchar
}
static
-void virt_viewer_app_set_uuid_string(VirtViewerApp *self, const gchar *uuid_string)
+void virt_viewer_app_apply_monitor_mapping(VirtViewerApp *self)
{
GHashTable *mapping = NULL;
- g_debug("%s: UUID changed to %s", G_STRFUNC, uuid_string);
+ g_return_if_fail(virt_viewer_app_get_fullscreen(self));
- g_free(self->priv->uuid);
- self->priv->uuid = g_strdup(uuid_string);
- mapping = virt_viewer_app_get_monitor_mapping_for_section(self, uuid_string);
+ mapping = virt_viewer_app_get_monitor_mapping_for_section(self, self->priv->uuid);
if (!mapping) {
g_debug("No guest-specific fullscreen config, using fallback");
mapping = virt_viewer_app_get_monitor_mapping_for_section(self, "fallback");
@@ -494,7 +492,7 @@ void virt_viewer_app_set_uuid_string(VirtViewerApp *self, const gchar *uuid_stri
// if we're changing our initial display map, move any existing windows to
// the appropriate monitors according to the per-vm configuration
- if (mapping && self->priv->fullscreen) {
+ if (mapping) {
GList *l;
gint i = 0;
@@ -505,6 +503,22 @@ void virt_viewer_app_set_uuid_string(VirtViewerApp *self, const gchar *uuid_stri
}
}
+static
+void virt_viewer_app_set_uuid_string(VirtViewerApp *self, const gchar *uuid_string)
+{
+ if (g_strcmp0(self->priv->uuid, uuid_string) == 0)
+ return;
+
+ g_debug("%s: UUID changed to %s", G_STRFUNC, uuid_string);
+
+ g_free(self->priv->uuid);
+ self->priv->uuid = g_strdup(uuid_string);
+
+ // apply mapping only in fullscreen
+ if (virt_viewer_app_get_fullscreen(self))
+ virt_viewer_app_apply_monitor_mapping(self);
+}
+
void
virt_viewer_app_maybe_quit(VirtViewerApp *self, VirtViewerWindow *window)
{
--
2.5.0
More information about the virt-tools-list
mailing list