Mercurial > mplayer.hg
comparison libvo/x11_common.c @ 6202:1e275c6cabb2
new layer handling code under icewm from Attila
author | pontscho |
---|---|
date | Mon, 27 May 2002 11:19:56 +0000 |
parents | c9ae6db39df0 |
children | 74115095d9fe |
comparison
equal
deleted
inserted
replaced
6201:f454e289070f | 6202:1e275c6cabb2 |
---|---|
51 #define vo_wm_Unknown 0 | 51 #define vo_wm_Unknown 0 |
52 #define vo_wm_NetWM 1 | 52 #define vo_wm_NetWM 1 |
53 #define vo_wm_KDE 2 | 53 #define vo_wm_KDE 2 |
54 #define vo_wm_IceWM 3 | 54 #define vo_wm_IceWM 3 |
55 #define vo_wm_WMakerStyle 4 | 55 #define vo_wm_WMakerStyle 4 |
56 | |
57 int ice_layer=12; | |
56 | 58 |
57 extern int verbose; | 59 extern int verbose; |
58 | 60 |
59 static int dpms_disabled=0; | 61 static int dpms_disabled=0; |
60 static int timeout_save=0; | 62 static int timeout_save=0; |
689 | 691 |
690 if ( WinID >= 0 ) return; | 692 if ( WinID >= 0 ) return; |
691 | 693 |
692 if ( vo_wm_type == vo_wm_IceWM ) | 694 if ( vo_wm_type == vo_wm_IceWM ) |
693 { | 695 { |
694 mp_dbg( MSGT_VO,MSGL_STATUS,"[x11] IceWM style stay on top ( layer %d ).\n",layer ); | 696 XClientMessageEvent xev; |
695 switch ( layer ) | 697 memset(&xev, 0, sizeof(xev)); |
696 { | 698 xev.type = ClientMessage; |
697 case -1: layer=2; break; // WinLayerBelow | 699 xev.window = vo_window; |
698 case 0: layer=4; break; // WinLayerNormal | 700 xev.message_type = XInternAtom(mDisplay, "_WIN_LAYER", False); |
699 case 1: layer=8; break; // WinLayerOnTop | 701 xev.format = 32; |
700 } | 702 xev.data.l[0] = layer?ice_layer:4; // if not fullscreen, stay on layer "Normal" |
701 XChangeProperty( mDisplay,vo_window, | 703 xev.data.l[1] = CurrentTime; |
702 XInternAtom( mDisplay,"_WIN_LAYER",False ),XA_CARDINAL,32,PropModeReplace,(unsigned char *)&layer,1 ); | 704 mp_dbg( MSGT_VO,MSGL_STATUS,"[x11] IceWM style stay on top ( layer %d ).\n",xev.data.l[0] ); |
705 XSendEvent(mDisplay, mRootWin, False, SubstructureNotifyMask, (XEvent *) &xev); | |
703 return; | 706 return; |
704 } | 707 } |
705 | 708 |
706 type=XInternAtom( mDisplay,"_NET_SUPPORTED",False ); | 709 type=XInternAtom( mDisplay,"_NET_SUPPORTED",False ); |
707 if ( Success == XGetWindowProperty( mDisplay,mRootWin,type,0,16384,False,AnyPropertyType,&type,&format,&nitems,&bytesafter,&args ) && nitems > 0 ) | 710 if ( Success == XGetWindowProperty( mDisplay,mRootWin,type,0,16384,False,AnyPropertyType,&type,&format,&nitems,&bytesafter,&args ) && nitems > 0 ) |