rem: else ny = wwin->frame_y;
context: wClientConfigure(WWindow *wwin, XConfigureRequestEvent *xcre){    XWindowChanges xwc;    int nx, ny, nwidth, nheight;    int ofs_x, ofs_y;    /*  printf("configure event: %d %d %d %d\n", xcre->x, xcre->y, xcre->width, xcre->height);*/    if (wwin==NULL) {        /*         * configure a window that was not mapped by us         */        xwc.x = xcre->x;        xwc.y = xcre->y;        xwc.width = xcre->width;        xwc.height = xcre->height;        xwc.border_width = xcre->border_width;        xwc.stack_mode = xcre->detail;        xwc.sibling = xcre->above;        XConfigureWindow(dpy, xcre->window, xcre->value_mask, &xwc);        return;    }#ifdef SHAPE    if (wShapeSupported) {        int junk;        unsigned int ujunk;        int b_shaped;        XShapeSelectInput(dpy, wwin->client_win, ShapeNotifyMask);        XShapeQueryExtents(dpy, wwin->client_win, &b_shaped, &junk, &junk,                           &ujunk, &ujunk, &junk, &junk, &junk, &ujunk,                           &ujunk);        wwin->flags.shaped = b_shaped;    }#endif    if (xcre->value_mask & CWStackMode) {        WObjDescriptor *desc;        WWindow *sibling;        if ((xcre->value_mask & CWSibling) &&            (XFindContext(dpy, xcre->above, wWinContext,                          (XPointer *)&desc) == XCSUCCESS)            && (desc->parent_type==WCLASS_WINDOW)) {            sibling=desc->parent;            xwc.sibling = sibling->frame->core->window;        } else {            xwc.sibling = xcre->above;        }        xwc.stack_mode = xcre->detail;        XConfigureWindow(dpy, wwin->frame->core->window,                         xcre->value_mask & (CWSibling | CWStackMode), &xwc);        /* fix stacking order */        RemakeStackList(wwin->screen_ptr);    }    wClientGetGravityOffsets(wwin, &ofs_x, &ofs_y);    if (xcre->value_mask & CWBorderWidth) {        wwin->old_border_width = xcre->border_width;    }    if (!wwin->flags.shaded) {        /* If the window is shaded, wrong height will be set for the window */        if (xcre->value_mask & CWX) {            nx = xcre->x;            if (HAS_BORDER(wwin))                nx -= FRAME_BORDER_WIDTH;        }        else            nx = wwin->frame_x;        if (xcre->value_mask & CWY) {            ny = xcre->y - ((ofs_y < 0) ? 0 : wwin->frame->top_width);            if (HAS_BORDER(wwin))                ny -= FRAME_BORDER_WIDTH;        }        else            ny = wwin->frame_y;        if (xcre->value_mask & CWWidth)            nwidth = xcre->width;        else            nwidth = wwin->frame->core->width;        if (xcre->value_mask & CWHeight)            nheight = xcre->height;        else            nheight = wwin->frame->core->height - wwin->frame->top_width - wwin->frame->bottom_width;        wWindowConfigure(wwin, nx, ny, nwidth, nheight);        wwin->old_geometry.x = nx;        wwin->old_geometry.y = ny;        wwin->old_geometry.width = nwidth;        wwin->old_geometry.height = nheight;    }}