rem: scr->totalUsableArea = scr->usableArea;
context: wScreenUpdateUsableArea(WScreen *scr){    scr->totalUsableArea = scr->usableArea;    if (scr->dock && (!scr->dock->lowered 		      || wPreferences.no_window_over_dock)) {	int offset = wPreferences.icon_size + DOCK_EXTRA_SPACE;	if (scr->dock->on_right_side) {	    scr->totalUsableArea.x2 = WMIN(scr->totalUsableArea.x2,					  scr->scr_width - offset);	} else {	    scr->totalUsableArea.x1 = WMAX(scr->totalUsableArea.x1, offset);	}    }        if (wPreferences.no_window_over_icons) {	if (wPreferences.icon_yard & IY_VERT) {	    if (!(wPreferences.icon_yard & IY_RIGHT)) {		scr->totalUsableArea.x1 += wPreferences.icon_size;	    } else {		scr->totalUsableArea.x2 -= wPreferences.icon_size;	    }	} else {	    if (wPreferences.icon_yard & IY_TOP) {		scr->totalUsableArea.y1 += wPreferences.icon_size;	    } else {		scr->totalUsableArea.y2 -= wPreferences.icon_size;	    }	}    }#ifdef KWM_HINTS    {	WArea area;	if (wKWMGetUsableArea(scr, &area)) {	    scr->totalUsableArea.x1 = WMAX(scr->totalUsableArea.x1, area.x1);	    scr->totalUsableArea.y1 = WMAX(scr->totalUsableArea.y1, area.y1);	    scr->totalUsableArea.x2 = WMIN(scr->totalUsableArea.x2, area.x2);	    scr->totalUsableArea.y2 = WMIN(scr->totalUsableArea.y2, area.y2);	}    }#endif#ifdef GNOME_STUFF    {        WReservedArea *area = scr->reservedAreas;        while (area) {            int th, bh;            int lw, rw;            int w, h;            w = area->area.x2 - area->area.x1;            h = area->area.y2 - area->area.y1;            th = area->area.y1;            bh = scr->scr_height - area->area.y2;            lw = area->area.x1;            rw = scr->scr_width - area->area.x2;            if (WMIN(th, bh) <= WMIN(lw, rw)) {                /* horizontal */                if (th < bh) {                    /* on top */                    if (scr->totalUsableArea.y1 < area->area.y2)                        scr->totalUsableArea.y1 = area->area.y2;                } else {                    /* on bottom */                    if (scr->totalUsableArea.y2 > area->area.y1)                        scr->totalUsableArea.y2 = area->area.y1;                }            } else {                /* vertical */                if (lw < rw) {                    /* on left */                    if (scr->totalUsableArea.x1 < area->area.x2)                        scr->totalUsableArea.x1 = area->area.x2;                } else {                    /* on right */                    if (scr->totalUsableArea.x2 > area->area.x1)                        scr->totalUsableArea.x2 = area->area.x1;                }            }            area = area->next;        }    }#endif /* GNOME_STUFF */    if (scr->totalUsableArea.x2 - scr->totalUsableArea.x1 < scr->scr_width/2) {	scr->totalUsableArea.x2 = scr->usableArea.x2;	scr->totalUsableArea.x1 = scr->usableArea.x1;    }    if (scr->totalUsableArea.y2 - scr->totalUsableArea.y1 < scr->scr_height/2) {	scr->totalUsableArea.y2 = scr->usableArea.y2;	scr->totalUsableArea.y1 = scr->usableArea.y1;    }#ifdef not_used#ifdef KWM_HINTS    {	int i;	for (i = 0; i < scr->workspace_count; i++) {	    wKWMSetUsableAreaHint(scr, i);	}    }#endif#endif    {        unsigned size = wPreferences.workspace_border_size;        unsigned position = wPreferences.workspace_border_position;        if (size>0 && position!=WB_NONE) {            if (position & WB_LEFTRIGHT) {                scr->totalUsableArea.x1 += size;                scr->totalUsableArea.x2 -= size;            }            if (position & WB_TOPBOTTOM) {                scr->totalUsableArea.y1 += size;                scr->totalUsableArea.y2 -= size;            }        }    }}