mirror of
https://github.com/mpv-player/mpv
synced 2025-01-09 01:36:25 +01:00
_NET_WM_FULLSCREEN support
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7573 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
3ef4629545
commit
690bccca99
10
Gui/wm/ws.c
10
Gui/wm/ws.c
@ -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;
|
||||
|
@ -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 );
|
||||
|
Loading…
Reference in New Issue
Block a user