]> source.dussan.org Git - tigervnc.git/commitdiff
Fix corner case in monitor index calculation
authorPierre Ossman <ossman@cendio.se>
Thu, 9 Sep 2021 09:04:21 +0000 (11:04 +0200)
committerPierre Ossman <ossman@cendio.se>
Thu, 9 Sep 2021 11:12:23 +0000 (13:12 +0200)
Fix a bug in the comparison function that could result in the wrong
index being assigned to a monitor. Change the logic to more directly map
to the description.

vncviewer/MonitorIndicesParameter.cxx

index ad791504bd06fe561deb8e6157afa4d7683c6c6c..5130831cb4a8e221c7fb6884c37a27b355e4a6b4 100644 (file)
@@ -243,12 +243,14 @@ int MonitorIndicesParameter::compare(const void *a, const void *b)
     if (monitor1->x < monitor2->x)
         return -1;
 
+    if (monitor1->x > monitor2->x)
+        return 1;
+
     if (monitor1->y < monitor2->y)
         return -1;
 
-    if (monitor1->x == monitor2->x)
-        if (monitor1->y == monitor2->y)
-            return 0;
+    if (monitor1->y > monitor2->y)
+        return 1;
 
-    return 1;
+    return 0;
 }