[virt-tools-list] [PATCH virt-viewer 2/3] virt_viewer_parse_monitor_mappings: Add parameter for client monitors

Pavel Grunt pgrunt at redhat.com
Tue Mar 8 08:20:48 UTC 2016


Drop dependency on gdk. it allows to write tests not depending
on the client's configuration.
---
 src/virt-viewer-app.c  | 2 +-
 src/virt-viewer-util.c | 4 ++--
 src/virt-viewer-util.h | 3 ++-
 3 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/virt-viewer-app.c b/src/virt-viewer-app.c
index c2e9bbe..6573961 100644
--- a/src/virt-viewer-app.c
+++ b/src/virt-viewer-app.c
@@ -378,7 +378,7 @@ virt_viewer_app_get_monitor_mapping_for_section(VirtViewerApp *self, const gchar
             g_warning("Error reading monitor assignments for %s: %s", section, error->message);
         g_clear_error(&error);
     } else {
-        mapping = virt_viewer_parse_monitor_mappings(mappings, nmappings);
+        mapping = virt_viewer_parse_monitor_mappings(mappings, nmappings, get_n_client_monitors());
     }
     g_strfreev(mappings);
 
diff --git a/src/virt-viewer-util.c b/src/virt-viewer-util.c
index 577d65b..fc2ace4 100644
--- a/src/virt-viewer-util.c
+++ b/src/virt-viewer-util.c
@@ -605,6 +605,7 @@ virt_viewer_shift_monitors_to_origin(GHashTable *displays)
  * virt_viewer_parse_monitor_mappings:
  * @mappings: (array zero-terminated=1) values for the "monitor-mapping" key
  * @nmappings: the size of @mappings
+ * @nmonitors: the count of client's monitors
  *
  * Parses and validates monitor mappings values to return a hash table
  * containing the mapping from guest display ids to client monitors ids.
@@ -613,9 +614,8 @@ virt_viewer_shift_monitors_to_origin(GHashTable *displays)
  *  ids to client monitor ids or %NULL if the mapping is invalid.
  */
 GHashTable*
-virt_viewer_parse_monitor_mappings(gchar **mappings, const gsize nmappings)
+virt_viewer_parse_monitor_mappings(gchar **mappings, const gsize nmappings, const gint nmonitors)
 {
-    const gint nmonitors = gdk_screen_get_n_monitors(gdk_screen_get_default());
     GHashTable *displaymap = g_hash_table_new(g_direct_hash, g_direct_equal);
     GHashTable *monitormap = g_hash_table_new(g_direct_hash, g_direct_equal);
     gint i, max_display_id = 0;
diff --git a/src/virt-viewer-util.h b/src/virt-viewer-util.h
index 249ace1..5515f66 100644
--- a/src/virt-viewer-util.h
+++ b/src/virt-viewer-util.h
@@ -63,7 +63,8 @@ void virt_viewer_shift_monitors_to_origin(GHashTable *displays);
 
 /* monitor mapping */
 GHashTable* virt_viewer_parse_monitor_mappings(gchar **mappings,
-                                               const gsize nmappings);
+                                               const gsize nmappings,
+                                               const gint nmonitors);
 #endif
 
 /*
-- 
2.5.0




More information about the virt-tools-list mailing list