mirror of
https://github.com/mpv-player/mpv
synced 2025-04-11 04:01:31 +00:00
rewrite MWM hint handling
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5032 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
fe1e1f2241
commit
59623831cf
53
Gui/wm/ws.c
53
Gui/wm/ws.c
@ -103,59 +103,18 @@ inline int wsSearch( Window win );
|
|||||||
|
|
||||||
void wsWindowDecoration( wsTWindow * win,long d )
|
void wsWindowDecoration( wsTWindow * win,long d )
|
||||||
{
|
{
|
||||||
#if 0
|
|
||||||
MotifWmHints *hints = &wsMotifWmHints;
|
|
||||||
Atom type;
|
|
||||||
int format;
|
|
||||||
unsigned long nitems;
|
|
||||||
unsigned long bytes_after;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
wsMotifHints=XInternAtom( wsDisplay,"_MOTIF_WM_HINTS",0 );
|
wsMotifHints=XInternAtom( wsDisplay,"_MOTIF_WM_HINTS",0 );
|
||||||
if ( wsMotifHints == None ) return;
|
if ( wsMotifHints == None ) return;
|
||||||
|
|
||||||
#if 1
|
|
||||||
memset( &wsMotifWmHints,0,sizeof( MotifWmHints ) );
|
memset( &wsMotifWmHints,0,sizeof( MotifWmHints ) );
|
||||||
wsMotifWmHints.flags=( d?0:MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS );
|
wsMotifWmHints.flags=MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS;
|
||||||
wsMotifWmHints.functions=( d?0:MWM_FUNC_MOVE | MWM_FUNC_CLOSE | MWM_FUNC_MINIMIZE | MWM_FUNC_MAXIMIZE | MWM_FUNC_RESIZE );
|
if ( d )
|
||||||
wsMotifWmHints.decorations=( d?MWM_DECOR_ALL:0 );
|
{
|
||||||
|
wsMotifWmHints.functions=MWM_FUNC_MOVE | MWM_FUNC_CLOSE | MWM_FUNC_MINIMIZE | MWM_FUNC_MAXIMIZE | MWM_FUNC_RESIZE;
|
||||||
|
wsMotifWmHints.decorations=MWM_DECOR_ALL;
|
||||||
|
}
|
||||||
XChangeProperty( wsDisplay,win->WindowID,wsMotifHints,wsMotifHints,32,
|
XChangeProperty( wsDisplay,win->WindowID,wsMotifHints,wsMotifHints,32,
|
||||||
PropModeReplace,(unsigned char *)&wsMotifWmHints,5 );
|
PropModeReplace,(unsigned char *)&wsMotifWmHints,5 );
|
||||||
#else
|
|
||||||
XGetWindowProperty( wsDisplay,win->WindowID,
|
|
||||||
wsMotifHints,0,5,
|
|
||||||
False,AnyPropertyType,&type,&format,&nitems,
|
|
||||||
&bytes_after,(unsigned char **)&hints );
|
|
||||||
|
|
||||||
if ( type != None )
|
|
||||||
{
|
|
||||||
fprintf( stderr,"[ws] set valid mwm hints.\n" );
|
|
||||||
hints->flags=MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS;
|
|
||||||
if ( d )
|
|
||||||
{
|
|
||||||
hints->functions|=( MWM_FUNC_MOVE | MWM_FUNC_CLOSE | MWM_FUNC_MINIMIZE | MWM_FUNC_MAXIMIZE | MWM_FUNC_RESIZE );
|
|
||||||
hints->decorations|=MWM_DECOR_ALL;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
hints->functions|=~( MWM_FUNC_MOVE | MWM_FUNC_CLOSE | MWM_FUNC_MINIMIZE | MWM_FUNC_MAXIMIZE | MWM_FUNC_RESIZE );
|
|
||||||
hints->decorations|=~MWM_DECOR_ALL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
fprintf( stderr,"[ws] set my mwm hints.\n" );
|
|
||||||
memset( &wsMotifWmHints,0,sizeof( MotifWmHints ) );
|
|
||||||
hints=&wsMotifWmHints;
|
|
||||||
hints->flags=( d?MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS:0 );
|
|
||||||
hints->functions=( d?MWM_FUNC_MOVE | MWM_FUNC_CLOSE | MWM_FUNC_MINIMIZE | MWM_FUNC_MAXIMIZE | MWM_FUNC_RESIZE:0 );
|
|
||||||
hints->decorations=( d?MWM_DECOR_ALL:0 );
|
|
||||||
}
|
|
||||||
|
|
||||||
XChangeProperty( wsDisplay,win->WindowID,wsMotifHints,wsMotifHints,32,
|
|
||||||
PropModeReplace,&wsMotifWmHints,5 );
|
|
||||||
if ( hints != &wsMotifWmHints ) XFree( hints );
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user