rem: if (WFLAGP(wwin, full_maximize)) new_y -= wwin->frame->top_width;
add: if (WFLAGP(wwin, full_maximize)) { new_y -= wwin->frame->top_width - 1; new_height += wwin->frame->bottom_width - 3; }
context: wMaximizeWindow(WWindow *wwin, int directions){    int new_width, new_height, new_x, new_y;    WArea usableArea = wwin->screen_ptr->totalUsableArea;    if (WFLAGP(wwin, no_resizable))	return;        if (WFLAGP(wwin, full_maximize)) {	usableArea.x1 = 0;	usableArea.y1 = 0;	usableArea.x2 = wwin->screen_ptr->scr_width;	usableArea.y2 = wwin->screen_ptr->scr_height;    }    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;    } 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);    wWindowConfigure(wwin, new_x, new_y, new_width, new_height);#ifdef GNOME_STUFF    wGNOMEUpdateClientStateHint(wwin, False);#endif#ifdef KWM_HINTS    wKWMUpdateClientStateHint(wwin, KWMMaximizedFlag);    wKWMSendEventMessage(wwin, WKWMChangedClient);#endif#ifdef WMSOUND    wSoundPlay(WMSOUND_MAXIMIZE);#endif}