summaryrefslogtreecommitdiffstats
path: root/libvo/vo_xmga.c
diff options
context:
space:
mode:
authoratmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-06 21:07:20 +0000
committeratmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-01-06 21:07:20 +0000
commiteb2c656b52c6cf903cb0f2e8d69aab7ea424f50b (patch)
treed97ce2816e6dc9cbc7687edbb4867c8711e14d0d /libvo/vo_xmga.c
parent280cb5acaf6b8d66519aa78cd9c6e69952dc3e6f (diff)
downloadmpv-eb2c656b52c6cf903cb0f2e8d69aab7ea424f50b.tar.bz2
mpv-eb2c656b52c6cf903cb0f2e8d69aab7ea424f50b.tar.xz
Xinerama patch number two by attila.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4018 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/vo_xmga.c')
-rw-r--r--libvo/vo_xmga.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/libvo/vo_xmga.c b/libvo/vo_xmga.c
index e2c6b7784a..5494f683d6 100644
--- a/libvo/vo_xmga.c
+++ b/libvo/vo_xmga.c
@@ -45,6 +45,10 @@ LIBVO_EXTERN( xmga )
#include <X11/Xutil.h>
#include <errno.h>
+#ifdef HAVE_XINERAMA
+#include <X11/extensions/Xinerama.h>
+#endif
+
#include "x11_common.h"
#include "sub.h"
#include "aspect.h"
@@ -139,6 +143,31 @@ static void set_window(){
mDrawColorKey();
+#ifdef HAVE_XINERAMA
+ if(XineramaIsActive(mDisplay))
+ {
+ XineramaScreenInfo *screens;
+ int num_screens;
+ int i;
+
+ screens = XineramaQueryScreens(mDisplay,&num_screens);
+
+ /* find the screen we are on */
+ i = 0;
+ while(!(screens[i].x_org <= drwcX && screens[i].y_org <= drwcY &&
+ screens[i].x_org + screens[i].width >= drwcX &&
+ screens[i].y_org + screens[i].height >= drwcY ))
+ {
+ i++;
+ }
+
+ /* set drwcX and drwcY to the right values */
+ drwcX = drwcX - screens[i].x_org;
+ drwcY = drwcY - screens[i].y_org;
+ XFree(screens);
+ }
+
+#endif
mga_vid_config.x_org=drwcX;
mga_vid_config.y_org=drwcY;
mga_vid_config.dest_width=drwWidth;