diff options
author | pontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-05-14 11:41:02 +0000 |
---|---|---|
committer | pontscho <pontscho@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-05-14 11:41:02 +0000 |
commit | 1932ce4014700e79e98b5ff93b8cbcfb2a115581 (patch) | |
tree | 96ace8f08d1ab0cd1bc3f072f1a4d98ae7b83d0d /Gui/wm/ws.c | |
parent | 8852e42fc7e674a34e65d6ac8ea4866a9bc5068c (diff) | |
download | mpv-1932ce4014700e79e98b5ff93b8cbcfb2a115581.tar.bz2 mpv-1932ce4014700e79e98b5ff93b8cbcfb2a115581.tar.xz |
small fixes
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6090 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'Gui/wm/ws.c')
-rw-r--r-- | Gui/wm/ws.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/Gui/wm/ws.c b/Gui/wm/ws.c index ea8551e3e6..e221c78e8e 100644 --- a/Gui/wm/ws.c +++ b/Gui/wm/ws.c @@ -156,6 +156,7 @@ int wsWindowManagerType( void ) int wm = wsWMUnknown; // --- gnome +/* type=XInternAtom( wsDisplay,"_WIN_SUPPORTING_WM_CHECK",False ); if ( Success == XGetWindowProperty( wsDisplay,wsRootWin,type,0,65536 / sizeof( long ),False,AnyPropertyType,&type,&format,&nitems,&bytesafter,&args ) && nitems > 0 ) { @@ -163,7 +164,7 @@ int wsWindowManagerType( void ) XFree( args ); return wsWMGnome; } - +*/ // --- net wm type=XInternAtom( wsDisplay,"_NET_SUPPORTED",False ); if ( Success == XGetWindowProperty( wsDisplay,wsRootWin,type,0,65536 / sizeof( long ),False,AnyPropertyType,&type,&format,&nitems,&bytesafter,&args ) && nitems > 0 ) @@ -198,6 +199,7 @@ int wsWindowManagerType( void ) XFree( name ); } } while( c++ < 25 ); + XUnmapWindow( wsDisplay,win ); XDestroyWindow( wsDisplay,win ); #ifdef MP_DEBUG if ( wm == wsWMUnknown ) mp_dbg( MSGT_VO,MSGL_STATUS,"[ws] Unknown wm type...\n" ); @@ -205,6 +207,8 @@ int wsWindowManagerType( void ) return wsWMUnknown; } +extern int vo_wm_type; + void wsXInit( void* mDisplay ) { int eventbase; @@ -256,7 +260,8 @@ if(mDisplay){ wsMaxX=DisplayWidth( wsDisplay,wsScreen ); wsMaxY=DisplayHeight( wsDisplay,wsScreen ); - wsWMType=wsWindowManagerType(); + if ( vo_wm_type != -1 ) wsWMType=vo_wm_type; + else wsWMType=wsWindowManagerType(); wsGetDepthOnScreen(); #ifdef DEBUG @@ -533,7 +538,6 @@ inline int wsSearch( Window win ) Bool wsEvents( Display * display,XEvent * Event,XPointer arg ) { - KeySym keySym; unsigned long i = 0; int l; int x,y; @@ -613,6 +617,7 @@ keypressed: if ( Event->xkey.state & ControlMask ) wsWindowList[l]->Control=1; if ( Event->xkey.state & ShiftMask ) wsWindowList[l]->Shift=1; if ( Event->xkey.state & LockMask ) wsWindowList[l]->CapsLock=1; +#if 0 keySym=XKeycodeToKeysym( wsDisplay,Event->xkey.keycode,0 ); if ( keySym != NoSymbol ) { @@ -621,6 +626,19 @@ keypressed: if ( wsWindowList[l]->KeyHandler ) wsWindowList[l]->KeyHandler( Event->xkey.state,i,keySym ); } +#else + { + int key; + char buf[100]; + KeySym keySym; + static XComposeStatus stat; + + XLookupString( &Event->xkey,buf,sizeof(buf),&keySym,&stat ); + key=( (keySym&0xff00) != 0?( (keySym&0x00ff) + 256 ):( keySym ) ); + wsKeyTable[ key ]=i; + if ( wsWindowList[l]->KeyHandler ) wsWindowList[l]->KeyHandler( Event->xkey.state,i,key ); + } +#endif break; case MotionNotify: i=wsMoveMouse; goto buttonreleased; |