else if (f) f->doCommand(cmd, cd, info); else if (v) v->doCommand(cmd, cd, info);
xfe_ExecuteCommand(XFE_Frame* frame,				   CommandType cmd, void* cd, XFE_CommandInfo* info){	XP_Bool slow = TRUE;	XFE_Command* handler = frame->getCommand(cmd);	if ((handler != NULL && handler->isSlow() != TRUE) ||		//		//    This is because ComposeFrame/ComposeView have this special		//    handling of these commands (which have handlers, but don't		//    want to admit it in open public.		//		cmd == xfeCmdCut        ||		cmd == xfeCmdCopy       ||		cmd == xfeCmdPaste      ||		cmd == xfeCmdDeleteItem ||		cmd == xfeCmdSelectAll  ||		cmd == xfeCmdUndo       ||		cmd == xfeCmdSpacebar) {		slow = FALSE;	}	if (slow)		XmUpdateDisplay(frame->getBaseWidget());	//	//    don't do notifies when exiting, they may be delivered to	//    stuff that isn't there any more.	//	if (cmd == xfeCmdExit || cmd == xfeCmdClose)		slow = FALSE;	if (slow)		frame->notifyInterested(XFE_Frame::frameBusyCallback);	if (handler != NULL)		handler->doCommand(frame, info);	else		frame->doCommand(cmd, cd, info);	if (slow)		frame->notifyInterested(XFE_Frame::frameNotBusyCallback);}