rem: if ( wPreferences.no_window_over_icons) { if ( wPreferences.icon_yard & IY_VERT) { if ( wPreferences.icon_yard & IY_RIGHT) {
add: if (wPreferences.no_window_over_icons) { if (wPreferences.icon_yard & IY_VERT) { if (wPreferences.icon_yard & IY_RIGHT) { scr->totalUsableArea[i].x2 -= wPreferences.icon_size; } else {
context: wScreenUpdateUsableArea(WScreen *scr){    /*     *  scr->totalUsableArea[] will become the usableArea used for Windowplacement,     *  scr->usableArea[] will be used for iconplacement, hence no iconyard nor border.     */    int i;    unsigned long best_area = 0, tmp_area;    WArea area;    int dock_head = scr->xine_info.primary_head;    if ( scr->dock) {	WMRect rect = { scr->dock->x_pos, scr->dock->y_pos, wPreferences.icon_size, wPreferences.icon_size };	dock_head = wGetHeadForRect(scr, rect);    }        for ( i=0; i<wXineramaHeads(scr); ++i) {	WMRect rect = wGetRectForHead(scr, i);	scr->totalUsableArea[i] = (WArea){ 	    rect.pos.x, 	    rect.pos.y,	    rect.pos.x + rect.size.width,	    rect.pos.y + rect.size.height	};	if ( scr->dock && dock_head==i &&	     (!scr->dock->lowered || wPreferences.no_window_over_dock)) {	    int offset = wPreferences.icon_size + DOCK_EXTRA_SPACE;	    if ( scr->dock->on_right_side) {		scr->totalUsableArea[i].x2 -= offset;	    } else {		scr->totalUsableArea[i].x1 += offset;	    }	}#ifdef NETWM_HINTS	{	    WArea area;	    if ( wNETWMGetUsableArea(scr, i, &area)) {		scr->totalUsableArea[i].x1 = WMAX(scr->totalUsableArea[i].x1, area.x1);		scr->totalUsableArea[i].y1 = WMAX(scr->totalUsableArea[i].y1, area.y1);		scr->totalUsableArea[i].x2 = WMIN(scr->totalUsableArea[i].x2, area.x2);		scr->totalUsableArea[i].y2 = WMIN(scr->totalUsableArea[i].y2, area.y2);	    }	}#endif#ifdef GNOME_STUFF	{	    WArea area;	    if ( wGNOMEGetUsableArea(scr, i, &area)) {		scr->totalUsableArea[i].x1 = WMAX(scr->totalUsableArea[i].x1, area.x1);		scr->totalUsableArea[i].y1 = WMAX(scr->totalUsableArea[i].y1, area.y1);		scr->totalUsableArea[i].x2 = WMIN(scr->totalUsableArea[i].x2, area.x2);		scr->totalUsableArea[i].y2 = WMIN(scr->totalUsableArea[i].y2, area.y2);	    }	}#endif#ifdef KWM_HINTS	{	    WArea area;	    if ( wKWMGetUsableArea(scr, i, &area)) {		scr->totalUsableArea[i].x1 = WMAX(scr->totalUsableArea[i].x1, area.x1);		scr->totalUsableArea[i].y1 = WMAX(scr->totalUsableArea[i].y1, area.y1);		scr->totalUsableArea[i].x2 = WMIN(scr->totalUsableArea[i].x2, area.x2);		scr->totalUsableArea[i].y2 = WMIN(scr->totalUsableArea[i].y2, area.y2);	    }	}#endif	scr->usableArea[i] = scr->totalUsableArea[i];#if 0	printf( "usableArea[%d]: %d %d %d %d\n", i, 		scr->usableArea[i].x1,		scr->usableArea[i].x2,		scr->usableArea[i].y1,		scr->usableArea[i].y2);#endif	if ( wPreferences.no_window_over_icons) {	    if ( wPreferences.icon_yard & IY_VERT) {		if ( wPreferences.icon_yard & IY_RIGHT) {		    scr->totalUsableArea[i].x1 += wPreferences.icon_size;		} else {		    scr->totalUsableArea[i].x2 -= wPreferences.icon_size;		}	    } else {		if ( wPreferences.icon_yard & IY_TOP) {		    scr->totalUsableArea[i].y1 += wPreferences.icon_size;		} else {		    scr->totalUsableArea[i].y2 -= wPreferences.icon_size;		}	    }	}	if (scr->totalUsableArea[i].x2 - scr->totalUsableArea[i].x1 < rect.size.width/2) {	    scr->totalUsableArea[i].x1 = rect.pos.x;	    scr->totalUsableArea[i].x2 = rect.pos.x + rect.size.width;	}	if (scr->totalUsableArea[i].y2 - scr->totalUsableArea[i].y1 < rect.size.height/2) {	    scr->totalUsableArea[i].y1 = rect.pos.y;	    scr->totalUsableArea[i].y2 = rect.pos.y + rect.size.height;	}	tmp_area = (scr->totalUsableArea[i].x2 - scr->totalUsableArea[i].x1) * 	    (scr->totalUsableArea[i].y2 - scr->totalUsableArea[i].y1);	if ( tmp_area > best_area) {	    best_area = tmp_area;	    area = scr->totalUsableArea[i];	}	{	    unsigned size = wPreferences.workspace_border_size;	    unsigned position = wPreferences.workspace_border_position;	    if (size>0 && position!=WB_NONE) {		if (position & WB_LEFTRIGHT) {		    scr->totalUsableArea[i].x1 += size;		    scr->totalUsableArea[i].x2 -= size;		}		if (position & WB_TOPBOTTOM) {		    scr->totalUsableArea[i].y1 += size;		    scr->totalUsableArea[i].y2 -= size;		}	    }	}    }#ifdef NETWM_HINTS    wNETWMUpdateWorkarea(scr, area);#endif    if (wPreferences.auto_arrange_icons) {        wArrangeIcons(scr, True);    }}