diff options
Diffstat (limited to 'Gui/wm/ws.c')
-rw-r--r-- | Gui/wm/ws.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Gui/wm/ws.c b/Gui/wm/ws.c index 101bdcd378..bfb828f785 100644 --- a/Gui/wm/ws.c +++ b/Gui/wm/ws.c @@ -1143,10 +1143,14 @@ void wsScreenSaverOff( Display * mDisplay ) void wsSetShape( wsTWindow * win,char * data ) { #ifdef HAVE_XSHAPE - if ( ( !wsUseXShape )||( !data ) ) return; - win->Mask=XCreateBitmapFromData( wsDisplay,win->WindowID,data,win->Width,win->Height ); - XShapeCombineMask( wsDisplay,win->WindowID,ShapeBounding,0,0,win->Mask,ShapeSet ); - XFreePixmap( wsDisplay,win->Mask ); + if ( !wsUseXShape ) return; + if ( data ) + { + win->Mask=XCreateBitmapFromData( wsDisplay,win->WindowID,data,win->Width,win->Height ); + XShapeCombineMask( wsDisplay,win->WindowID,ShapeBounding,0,0,win->Mask,ShapeSet ); + XFreePixmap( wsDisplay,win->Mask ); + } + else XShapeCombineMask( wsDisplay,win->WindowID,ShapeBounding,0,0,None,ShapeSet ); #endif } |