rem: wMenuMapCopyAt(menu, x-menu->frame->core->width/2, y-menu->frame->top_width/2);
add: wMenuMapCopyAt(menu, x-menu->frame->core->width/2, y);
context: OpenRootMenu(WScreen *scr, int x, int y, int keyboard){    WMenu *menu=NULL;    proplist_t definition;    /*    static proplist_t domain=NULL;        if (!domain) {	domain = PLMakeString("WMRootMenu");    }     */        scr->flags.root_menu_changed_shortcuts = 0;    scr->flags.added_workspace_menu = 0;    if (scr->root_menu && scr->root_menu->flags.mapped) {	menu = scr->root_menu;	if (!menu->flags.buttoned) {	    wMenuUnmap(menu);	} else {	    wRaiseFrame(menu->frame->core);	    	    if (keyboard)		wMenuMapAt(menu, 0, 0, True);	    else		wMenuMapCopyAt(menu, x-menu->frame->core->width/2, 			       y-menu->frame->top_width/2);	}	return;    }            definition = WDRootMenu->dictionary;/*    definition = PLGetDomain(domain); */    if (definition) {	if (PLIsArray(definition)) {	    if (!scr->root_menu 		|| WDRootMenu->timestamp > scr->root_menu->timestamp) {		menu = configureMenu(scr, definition);		if (menu)		    menu->timestamp = WDRootMenu->timestamp;	    } else		menu = NULL;	} else {	    menu = configureMenu(scr, definition);	}    }    if (!menu) {	/* menu hasn't changed or could not be read */	if (!scr->root_menu) {	    wMessageDialog(scr, _("Error"),			  _("The applications menu could not be loaded."			    "Look at the console output for a detailed"			    "description of the errors"),			   _("OK"), NULL, NULL);	    menu = makeDefaultMenu(scr);	    scr->root_menu = menu;	}	menu = scr->root_menu;    } else {	/* new root menu */	if (scr->root_menu)	    wMenuDestroy(scr->root_menu, True);	scr->root_menu = menu;    }    if (menu) {	wMenuMapAt(menu, x-menu->frame->core->width/2, y-menu->frame->top_width/2,		   keyboard);    }        if (scr->flags.root_menu_changed_shortcuts)	rebindKeygrabs(scr);}