rem: NULL);
add: NULL, True);
context: PlaceWindow(WWindow *wwin, int *x_ret, int *y_ret,            unsigned width, unsigned height){    WScreen *scr = wwin->screen_ptr;    int h = WMFontHeight(scr->title_font) + (wPreferences.window_title_clearance + TITLEBAR_EXTEND_SPACE) * 2;    WArea usableArea = wGetUsableAreaForHead(scr, 					     wGetHeadForPointerLocation(scr),					     NULL);       switch (wPreferences.window_placement) {     case WPM_MANUAL:	InteractivePlaceWindow(wwin, x_ret, y_ret, width, height);	break;     case WPM_SMART:	smartPlaceWindow(wwin, x_ret, y_ret, width, height, usableArea);	break;     case WPM_AUTO:	if (autoPlaceWindow(wwin, x_ret, y_ret, width, height, 0,			    usableArea)) {	    break;	} else if (autoPlaceWindow(wwin, x_ret, y_ret, width, height, 1,				   usableArea)) {	    break;	}	/* there isn't a break here, because if we fail, it should fall	   through to cascade placement, as people who want tiling want	   automagicness aren't going to want to place their window */     case WPM_CASCADE:        if (wPreferences.window_placement == WPM_AUTO)            scr->cascade_index++;	cascadeWindow(scr, wwin, x_ret, y_ret, width, height, h, usableArea);        if (wPreferences.window_placement == WPM_CASCADE)            scr->cascade_index++;	break;     case WPM_RANDOM:	randomPlaceWindow(scr, wwin, x_ret, y_ret, width, height, usableArea);	break;#ifdef DEBUG     default:	puts("Invalid window placement!!!");	*x_ret = 0;	*y_ret = 0;#endif    }        /*     * clip to usableArea instead of full screen     * this will also take dock/clip etc.. into account     * aswell as being xinerama friendly     */    if (*x_ret + width > usableArea.x2)	*x_ret = usableArea.x2 - width;    if (*x_ret < usableArea.x1)        *x_ret = usableArea.x1;    if (*y_ret + height > usableArea.y2)	*y_ret = usableArea.y2 - height;    if (*y_ret < usableArea.y1)        *y_ret = usableArea.y1;}