1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-25 04:38:01 +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:
pontscho 2002-03-10 23:05:44 +00:00
parent fe1e1f2241
commit 59623831cf

View File

@ -103,59 +103,18 @@ inline int wsSearch( Window win );
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 );
if ( wsMotifHints == None ) return;
#if 1
memset( &wsMotifWmHints,0,sizeof( MotifWmHints ) );
wsMotifWmHints.flags=( d?0: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 );
wsMotifWmHints.decorations=( d?MWM_DECOR_ALL:0 );
wsMotifWmHints.flags=MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS;
if ( d )
{
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,
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
}
// ----------------------------------------------------------------------------------------------