rem: totalArea.x1 = 0; totalArea.y1 = 0; totalArea.x2 = wwin->screen_ptr->scr_width; totalArea.y2 = wwin->screen_ptr->scr_height;
add: usableArea = totalArea = (WArea){ 0, 0, wwin->screen_ptr->scr_width, wwin->screen_ptr->scr_height };
context: wMaximizeWindow(WWindow *wwin, int directions){    int new_width, new_height, new_x, new_y;    WArea usableArea = wwin->screen_ptr->totalUsableArea;    WArea totalArea;    if (WFLAGP(wwin, no_resizable))	return;        totalArea.x1 = 0;    totalArea.y1 = 0;    totalArea.x2 = wwin->screen_ptr->scr_width;    totalArea.y2 = wwin->screen_ptr->scr_height;    if (wwin->screen_ptr->xine_info.count > 0	&& !(directions & MAX_IGNORE_XINERAMA)) {	WScreen *scr = wwin->screen_ptr;	WMRect rect;	int head;	/* XXX:	if ( keyboard) {	    rect.pos.x = wwin->frame_x;	    rect.pos.y = wwin->frame_y;	    rect.size.width = wwin->frame->core->width;	    rect.size.height = wwin->frame->core->height;	    head = wGetHeadForRect(scr, rect);	} else	*/	head = wGetHeadForPointerLocation(scr);	rect = wGetRectForHead(scr, head);	usableArea = wGetUsableAreaForHead(scr, head, &totalArea);    }    if (WFLAGP(wwin, full_maximize)) {	usableArea = totalArea;    }    if (wwin->flags.shaded) {	wwin->flags.skip_next_animation = 1;	wUnshadeWindow(wwin);    }    wwin->flags.maximized = directions;    wwin->old_geometry.width = wwin->client.width;    wwin->old_geometry.height = wwin->client.height;    wwin->old_geometry.x = wwin->frame_x;    wwin->old_geometry.y = wwin->frame_y;#ifdef KWM_HINTS    wKWMUpdateClientGeometryRestore(wwin);#endif    if (directions & MAX_HORIZONTAL) {	new_width = (usableArea.x2-usableArea.x1)-FRAME_BORDER_WIDTH*2;		new_x = usableArea.x1;    } else {	new_x = wwin->frame_x;	new_width = wwin->frame->core->width;    }    if (directions & MAX_VERTICAL) {	new_height = (usableArea.y2-usableArea.y1)-FRAME_BORDER_WIDTH*2;	new_y = usableArea.y1;	if (WFLAGP(wwin, full_maximize)) {	    new_y -= wwin->frame->top_width;	    new_height += wwin->frame->bottom_width - 1;	}    } else {	new_y = wwin->frame_y;	new_height = wwin->frame->core->height;    }    if (!WFLAGP(wwin, full_maximize)) {	new_height -= wwin->frame->top_width+wwin->frame->bottom_width;    }    wWindowConstrainSize(wwin, &new_width, &new_height);        wWindowCropSize(wwin, usableArea.x2-usableArea.x1, 		    usableArea.y2-usableArea.y1,		    &new_width, &new_height);        wWindowConfigure(wwin, new_x, new_y, new_width, new_height);    WMPostNotificationName(WMNChangedState, wwin, "maximize");    wSoundPlay(WSOUND_MAXIMIZE);}