rem: if (which & WSS_WSMENU) { OpenWorkspaceMenu(scr, x, y); pmenu = scr->workspace_menu; if (pmenu->parent) {  for (i=0; i<pmenu->parent->cascade_no; i++) { if (pmenu->parent->cascades[i] == pmenu) { pmenu->parent->cascades[i] = pmenu->brother; break; } } } }
context: restoreMenu(WScreen *scr, proplist_t menu, int which){    int i, x, y;    WMenu *pmenu = NULL;        if (!menu)        return False;        if (!PLIsString(menu)) {        COMPLAIN("Position");        return False;    }    if (sscanf(PLGetString(menu), "%i,%i", &x, &y)!=2)        COMPLAIN("Position");#ifndef LITE    if (which & WSS_ROOTMENU) {        OpenRootMenu(scr, x, y, False);        pmenu = scr->root_menu;    } else if (which & WSS_SWITCHMENU) {        OpenSwitchMenu(scr, x, y, False);        pmenu = scr->switch_menu;    } else#endif /* !LITE */	if (which & WSS_WSMENU) {        OpenWorkspaceMenu(scr, x, y);        pmenu = scr->workspace_menu;        if (pmenu->parent) {            /* make parent map the copy in place of the original */            for (i=0; i<pmenu->parent->cascade_no; i++) {                if (pmenu->parent->cascades[i] == pmenu) {                    pmenu->parent->cascades[i] = pmenu->brother;                    break;                }            }        }    }    if (pmenu) {        int width = MENUW(pmenu);        int height = MENUH(pmenu);                x = (x < -width) ? 0 : x;        x = (x > scr->scr_width) ? scr->scr_width - width : x;        y = (y < 0) ? 0 : y;        y = (y > scr->scr_height) ? scr->scr_height - height : y;        wMenuMove(pmenu, x, y, True);        pmenu->flags.buttoned = 1;        wFrameWindowShowButton(pmenu->frame, WFF_RIGHT_BUTTON);        return True;    }    return False;}