rem: WMSetWindowInitialPosition(panel->win, (scr->rootView->size.width - WMWidgetWidth(panel->win))/2, (scr->rootView->size.height - WMWidgetHeight(panel->win))/2);
context: WMRunModalFilePanelForDirectory(WMFilePanel *panel, WMWindow *owner,                                char *path, char *name, char **fileTypes){    WMScreen *scr = WMWidgetScreen(panel->win);    XEvent event;    if (name && !owner) {        WMSetWindowTitle(panel->win, name);    }    WMChangePanelOwner(panel->win, owner);    WMSetFilePanelDirectory(panel, path);    panel->flags.done = 0;    switch(panel->flags.panelType) {    case WP_OPEN:        if (fileTypes)            panel->flags.filtered = 1;        panel->fileTypes = fileTypes;        if (name == NULL)            name = "Open";        break;    case WP_SAVE:        panel->fileTypes = NULL;        panel->flags.filtered = 0;        if (name == NULL)            name = "Save";        break;    default:        break;    }    WMSetWindowInitialPosition(panel->win,		 (scr->rootView->size.width - WMWidgetWidth(panel->win))/2,		 (scr->rootView->size.height - WMWidgetHeight(panel->win))/2);    WMSetLabelText(panel->titleLabel, name);    scr->modalView = W_VIEW(panel->win);    WMMapWidget(panel->win);    scr->modal = 1;    while (!panel->flags.done) {		WMNextEvent(scr->display, &event);	WMHandleEvent(&event);    }    scr->modal = 0;    /* Must withdraw window because the next time we map     * it, it might have a different transient owner.      */    WMCloseWindow(panel->win);    return (panel->flags.canceled ? False : True);}