changeset 26405:d557441dc9c5

Always calculate the xinerama screen mplayer is on. Bug reported by thomas.lindroth(<at>)gmail.com
author attila
date Sun, 13 Apr 2008 11:08:59 +0000
parents d549dcb766df
children 92037292fe2b
files libvo/x11_common.c
diffstat 1 files changed, 3 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/libvo/x11_common.c	Sun Apr 13 10:59:11 2008 +0000
+++ b/libvo/x11_common.c	Sun Apr 13 11:08:59 2008 +0000
@@ -368,6 +368,9 @@
 
 void update_xinerama_info(void) {
     int screen = xinerama_screen;
+    // center coordinates of the window
+    int x = vo_dx + vo_dwidth / 2;
+    int y = vo_dy + vo_dheight / 2;
     xinerama_x = xinerama_y = 0;
 #ifdef HAVE_XINERAMA
     if (screen >= -1 && XineramaIsActive(mDisplay))
@@ -376,11 +379,6 @@
         int num_screens;
 
         screens = XineramaQueryScreens(mDisplay, &num_screens);
-        if (screen >= num_screens)
-            screen = num_screens - 1;
-        if (screen == -1) {
-            int x = vo_dx + vo_dwidth / 2;
-            int y = vo_dy + vo_dheight / 2;
             for (screen = num_screens - 1; screen > 0; screen--) {
                int left = screens[screen].x_org;
                int right = left + screens[screen].width;
@@ -389,7 +387,6 @@
                if (left <= x && x <= right && top <= y && y <= bottom)
                    break;
             }
-        }
         if (screen < 0)
             screen = 0;
         vo_screenwidth = screens[screen].width;