fix xinerama monitor sorting.
authorGustavo Sverzut Barbieri <barbieri@gmail.com>
Sun, 17 May 2009 21:35:01 +0000 (21:35 +0000)
committerGustavo Sverzut Barbieri <barbieri@gmail.com>
Sun, 17 May 2009 21:35:01 +0000 (21:35 +0000)
xinerama monitor sorting should consider position and not just size.

Patch by manio, modified to handle y axis as well.

SVN revision: 40712

src/bin/e_xinerama.c

index b16fea5..67fe361 100644 (file)
@@ -211,7 +211,14 @@ _e_xinerama_cb_screen_sort(const void *data1, const void *data2)
 
    scr = data1;
    scr2 = data2;
-   dif = (scr2->w * scr2->h) - (scr->w * scr->h);
-   if (dif == 0) return scr->screen - scr2->screen;
+   if (scr2->x != scr->x)
+     return scr2->x - scr->x;
+   else if (scr2->y != scr->y)
+     return scr2->y - scr->y;
+   else
+     {
+       dif = (scr2->w * scr2->h) - (scr->w * scr->h);
+       if (dif == 0) return scr->screen - scr2->screen;
+     }
    return dif;
 }