[mutter] monitor-config-manager: Verify the layout origin is at (0, 0)



commit 68a6cc5976bfcce84341befaf87d5a86dfc0cd5f
Author: Jonas Ådahl <jadahl gmail com>
Date:   Wed Feb 8 10:33:24 2017 +0800

    monitor-config-manager: Verify the layout origin is at (0, 0)
    
    The extent of the layout regions must be a rectangle positioned at
    (0, 0).
    
    https://bugzilla.gnome.org/show_bug.cgi?id=777732

 src/backends/meta-monitor-config-manager.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)
---
diff --git a/src/backends/meta-monitor-config-manager.c b/src/backends/meta-monitor-config-manager.c
index d604ba7..85951c3 100644
--- a/src/backends/meta-monitor-config-manager.c
+++ b/src/backends/meta-monitor-config-manager.c
@@ -925,6 +925,7 @@ gboolean
 meta_verify_monitors_config (MetaMonitorsConfig *config,
                              GError            **error)
 {
+  int min_x, min_y;
   gboolean has_primary;
   GList *region;
   GList *l;
@@ -936,6 +937,8 @@ meta_verify_monitors_config (MetaMonitorsConfig *config,
       return FALSE;
     }
 
+  min_x = INT_MAX;
+  min_y = INT_MAX;
   region = NULL;
   has_primary = FALSE;
   for (l = config->logical_monitor_configs; l; l = l->next)
@@ -970,11 +973,21 @@ meta_verify_monitors_config (MetaMonitorsConfig *config,
           return FALSE;
         }
 
+      min_x = MIN (logical_monitor_config->layout.x, min_x);
+      min_y = MIN (logical_monitor_config->layout.y, min_y);
+
       region = g_list_prepend (region, &logical_monitor_config->layout);
     }
 
   g_list_free (region);
 
+  if (min_x != 0 || min_y != 0)
+    {
+      g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
+                   "Logical monitors positions are offset");
+      return FALSE;
+    }
+
   if (!has_primary)
     {
       g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]