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 ){