_NET_WM_FULLSCREEN support

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7573 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
pontscho 2002-10-01 14:37:01 +00:00
parent 3ef4629545
commit 690bccca99
2 changed files with 15 additions and 4 deletions

View File

@ -776,7 +776,7 @@ void wsSetLayer( Display * wsDisplay, Window win, int layer )
Atom type;
int format;
unsigned long nitems, bytesafter;
unsigned char * args = NULL;
Atom * args = NULL;
if ( wsWMType == wsWMIceWM )
{
@ -794,15 +794,21 @@ void wsSetLayer( Display * wsDisplay, Window win, int layer )
type=XInternAtom( wsDisplay,"_NET_SUPPORTED",False );
if ( Success == XGetWindowProperty( wsDisplay,wsRootWin,type,0,65536 / sizeof( int32_t ),False,AnyPropertyType,&type,&format,&nitems,&bytesafter,&args ) && nitems > 0 )
{
int i;
XEvent e;
e.xclient.type=ClientMessage;
e.xclient.message_type=XInternAtom( wsDisplay,"_NET_WM_STATE",False );
e.xclient.display=wsDisplay;
e.xclient.window=win;
e.xclient.format=32;
e.xclient.data.l[0]=layer;
e.xclient.data.l[1]=XInternAtom( wsDisplay,"_NET_WM_STATE_STAYS_ON_TOP",False );
// e.xclient.data.l[1]=XInternAtom( wsDisplay,"_NET_WM_STATE_FULLSCREEN",False );
type=XInternAtom( wsDisplay,"_NET_WM_STATE_FULLSCREEN",False );
for ( i=0;i < nitems;i++ )
if ( args[i] == type ) { e.xclient.data.l[1]=XInternAtom( wsDisplay,"_NET_WM_STATE_FULLSCREEN",False ); break; }
e.xclient.data.l[2]=0l;
e.xclient.data.l[3]=0l;
e.xclient.data.l[4]=0l;

View File

@ -635,7 +635,7 @@ void vo_x11_setlayer( int layer )
Atom type;
int format;
unsigned long nitems, bytesafter;
unsigned char * args = NULL;
Atom * args = NULL;
if ( WinID >= 0 ) return;
@ -658,6 +658,7 @@ void vo_x11_setlayer( int layer )
if ( Success == XGetWindowProperty( mDisplay,mRootWin,type,0,16384,False,AnyPropertyType,&type,&format,&nitems,&bytesafter,&args ) && nitems > 0 )
{
XEvent e;
int i;
mp_dbg( MSGT_VO,MSGL_STATUS,"[x11] NET style stay on top ( layer %d ).\n",layer );
memset( &e,0,sizeof( e ) );
@ -667,8 +668,12 @@ void vo_x11_setlayer( int layer )
e.xclient.window=vo_window;
e.xclient.format=32;
e.xclient.data.l[0]=layer;
e.xclient.data.l[1]=XInternAtom( mDisplay,"_NET_WM_STATE_STAYS_ON_TOP",False );
// e.xclient.data.l[1]=XInternAtom( mDisplay,"_NET_WM_STATE_FULLSCREEN",False );
type=XInternAtom( mDisplay,"_NET_WM_STATE_FULLSCREEN",False );
for ( i=0;i < nitems;i++ )
if ( args[i] == type ) { e.xclient.data.l[1]=XInternAtom( mDisplay,"_NET_WM_STATE_FULLSCREEN",False ); break; }
XSendEvent( mDisplay,mRootWin,False,SubstructureRedirectMask,&e );
XFree( args );