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 )