summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authoral <al@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-05-21 17:31:44 +0000
committeral <al@b3059339-0415-0410-9bf9-f77b7e298cf2>2005-05-21 17:31:44 +0000
commit362be18be60318f8ee5ee28a09e5aa04d7419106 (patch)
tree1a15e0426458abda20485466aebca52adf17b17e /libvo
parent140b59994a97cd828f22f3f58967cc3a4b1e0707 (diff)
downloadmpv-362be18be60318f8ee5ee28a09e5aa04d7419106.tar.bz2
mpv-362be18be60318f8ee5ee28a09e5aa04d7419106.tar.xz
Make -wid behave more consistent.
Original patch by kiriuja |mplayer-patches >ta< en-directo >tod< net| git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@15541 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r--libvo/vo_x11.c5
-rw-r--r--libvo/vo_xmga.c1
-rw-r--r--libvo/vo_xover.c1
-rw-r--r--libvo/vo_xv.c5
-rw-r--r--libvo/vo_xvidix.c1
-rw-r--r--libvo/vo_xvmc.c7
6 files changed, 20 insertions, 0 deletions
diff --git a/libvo/vo_x11.c b/libvo/vo_x11.c
index 14c04cff49..8262d57558 100644
--- a/libvo/vo_x11.c
+++ b/libvo/vo_x11.c
@@ -377,6 +377,8 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
vo_window = WinID ? ((Window) WinID) : mRootWin;
if (WinID)
{
+ int border;
+ Window win;
XUnmapWindow(mDisplay, vo_window);
XChangeWindowAttributes(mDisplay, vo_window, xswamask,
&xswa);
@@ -389,6 +391,9 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
ButtonReleaseMask |
ExposureMask);
XMapWindow(mDisplay, vo_window);
+ XGetGeometry(mDisplay, vo_window, &mRootWin,
+ &vo_dx, &vo_dy, &vo_dwidth, &vo_dheight,
+ &border, &depth);
} else
XSelectInput(mDisplay, vo_window, ExposureMask);
} else
diff --git a/libvo/vo_xmga.c b/libvo/vo_xmga.c
index a5f020667a..d456b53362 100644
--- a/libvo/vo_xmga.c
+++ b/libvo/vo_xmga.c
@@ -213,6 +213,7 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
ButtonPressMask |
ButtonReleaseMask |
ExposureMask);
+ XMapWindow(mDisplay, vo_window);
} else
XSelectInput(mDisplay, vo_window, ExposureMask);
diff --git a/libvo/vo_xover.c b/libvo/vo_xover.c
index 22457fc4da..0b4a97524d 100644
--- a/libvo/vo_xover.c
+++ b/libvo/vo_xover.c
@@ -300,6 +300,7 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
XUnmapWindow(mDisplay, vo_window);
XChangeWindowAttributes(mDisplay, vo_window, xswamask, &xswa);
vo_x11_selectinput_witherr( mDisplay,vo_window,StructureNotifyMask | KeyPressMask | PropertyChangeMask | PointerMotionMask | ButtonPressMask | ButtonReleaseMask | ExposureMask );
+ XMapWindow(mDisplay, vo_window);
} else XSelectInput( mDisplay,vo_window,ExposureMask );
}
else
diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c
index 36a9fdac69..e485743dae 100644
--- a/libvo/vo_xv.c
+++ b/libvo/vo_xv.c
@@ -298,6 +298,11 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
ButtonReleaseMask |
ExposureMask);
XMapWindow(mDisplay, vo_window);
+ XGetGeometry(mDisplay, vo_window, &mRoot,
+ &drwX, &drwY, &vo_dwidth, &vo_dheight,
+ &drwBorderWidth, &drwDepth);
+ drwX = drwY = 0; // coordinates need to be local to the window
+ aspect_save_prescale(vo_dwidth, vo_dheight);
} else
{
drwX = vo_dx;
diff --git a/libvo/vo_xvidix.c b/libvo/vo_xvidix.c
index 1d5fa7d495..4eadcd4204 100644
--- a/libvo/vo_xvidix.c
+++ b/libvo/vo_xvidix.c
@@ -347,6 +347,7 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width,
ButtonPressMask |
ButtonReleaseMask |
ExposureMask);
+ XMapWindow(mDisplay, vo_window);
} else
XSelectInput(mDisplay, vo_window, ExposureMask);
} else
diff --git a/libvo/vo_xvmc.c b/libvo/vo_xvmc.c
index 053714b355..f63e7c28d1 100644
--- a/libvo/vo_xvmc.c
+++ b/libvo/vo_xvmc.c
@@ -666,10 +666,17 @@ found_subpic:
vo_window = WinID ? ((Window)WinID) : mRootWin;
if ( WinID )
{
+ Window mRoot;
+ uint32_t drwBorderWidth, drwDepth;
XUnmapWindow( mDisplay,vo_window );
XChangeWindowAttributes( mDisplay,vo_window,xswamask,&xswa );
vo_x11_selectinput_witherr( mDisplay,vo_window,StructureNotifyMask | KeyPressMask | PropertyChangeMask | PointerMotionMask | ButtonPressMask | ButtonReleaseMask | ExposureMask );
XMapWindow( mDisplay,vo_window );
+ XGetGeometry(mDisplay, vo_window, &mRoot,
+ &drwX, &drwY, &vo_dwidth, &vo_dheight,
+ &drwBorderWidth, &drwDepth);
+ drwX = drwY = 0; // coordinates need to be local to the window
+ aspect_save_prescale(vo_dwidth, vo_dheight);
} else { drwX=vo_dx; drwY=vo_dy; }
} else
if ( vo_window == None ){