diff options
author | atmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-01-06 21:07:20 +0000 |
---|---|---|
committer | atmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-01-06 21:07:20 +0000 |
commit | eb2c656b52c6cf903cb0f2e8d69aab7ea424f50b (patch) | |
tree | d97ce2816e6dc9cbc7687edbb4867c8711e14d0d /libvo/vo_xmga.c | |
parent | 280cb5acaf6b8d66519aa78cd9c6e69952dc3e6f (diff) | |
download | mpv-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.c | 29 |
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; |