This is the last piece of nastiness associated with the external inset: void ControlExternal::editExternal() { lyx::Assert(params_.get());
dialog().view().apply(); InsetExternal inset; inset.setParams(*params_, kernel().buffer()->filePath()); inset.cache(kernel().bufferview()); inset.editExternal(); } I propose to replace it with a new LFUN: void ControlExternal::editExternal() { lyx::Assert(params_.get()); // Fills the params variable dialog().view().apply(); string const lfun = InsetExternalMailer::params2string(params()); kernel().dispatch(FuncRequest(LFUN_EXTERNAL_EDIT, lfun)); } (which also means I can get rid of that klunky InsetExternal::cache method.) Ok? -- Angus