summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
Diffstat (limited to 'libvo')
-rw-r--r--libvo/vo_x11.c5
-rw-r--r--libvo/vo_xv.c5
2 files changed, 7 insertions, 3 deletions
diff --git a/libvo/vo_x11.c b/libvo/vo_x11.c
index 32ef9609ce..aae5163b9d 100644
--- a/libvo/vo_x11.c
+++ b/libvo/vo_x11.c
@@ -353,6 +353,7 @@ static uint32_t config( uint32_t width,uint32_t height,uint32_t d_width,uint32_t
#ifdef HAVE_XINERAMA
vo_x11_xinerama_move(mDisplay,vo_window);
#endif
+ if(WinID!=0)
do { XNextEvent( mDisplay,&xev ); } while ( xev.type != MapNotify || xev.xmap.event != vo_window );
XSelectInput( mDisplay,vo_window,NoEventMask );
@@ -360,7 +361,9 @@ static uint32_t config( uint32_t width,uint32_t height,uint32_t d_width,uint32_t
XSync( mDisplay,False );
vo_gc=XCreateGC( mDisplay,vo_window,0L,&xgcv );
- XSelectInput( mDisplay,vo_window,StructureNotifyMask | KeyPressMask | ButtonPressMask | ButtonReleaseMask | PointerMotionMask);
+ // we cannot grab mouse events on root window :(
+ XSelectInput( mDisplay,vo_window,StructureNotifyMask | KeyPressMask |
+ ((WinID==0)?0:(ButtonPressMask | ButtonReleaseMask | PointerMotionMask)) );
#ifdef HAVE_XF86VM
if ( vm )
diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c
index 8ef925d5a7..6b93bcd2c1 100644
--- a/libvo/vo_xv.c
+++ b/libvo/vo_xv.c
@@ -417,11 +417,12 @@ static uint32_t config(uint32_t width, uint32_t height, uint32_t d_width, uint32
vo_x11_classhint( mDisplay,vo_window,"xv" );
vo_hidecursor(mDisplay,vo_window);
- if(WinID!=0)
- XSelectInput(mDisplay, vo_window, StructureNotifyMask | KeyPressMask | PointerMotionMask
+ XSelectInput(mDisplay, vo_window, StructureNotifyMask | KeyPressMask |
+ ((WinID==0) ? 0 : (PointerMotionMask
#ifdef HAVE_NEW_INPUT
| ButtonPressMask | ButtonReleaseMask
#endif
+ ))
);
XSetStandardProperties(mDisplay, vo_window, hello, hello, None, NULL, 0, &hint);
if ( vo_fs ) vo_x11_decoration( mDisplay,vo_window,0 );