#include "Cursor.h"
#include "CutAndPaste.h"
#include "DispatchResult.h"
-#include "EmbeddedFiles.h"
#include "ErrorList.h"
#include "factory.h"
#include "FloatList.h"
case LFUN_FONT_STATE:
case LFUN_LABEL_INSERT:
case LFUN_INFO_INSERT:
- case LFUN_EXTERNAL_EDIT:
- case LFUN_GRAPHICS_EDIT:
+ case LFUN_INSET_EDIT:
case LFUN_PARAGRAPH_GOTO:
case LFUN_NOTE_NEXT:
case LFUN_REFERENCE_NEXT:
break;
}
- case LFUN_BUFFER_TOGGLE_EMBEDDING: {
- flag.setOnOff(buffer_.params().embedded);
- break;
- }
-
case LFUN_SCREEN_UP:
case LFUN_SCREEN_DOWN:
case LFUN_SCROLL:
break;
}
- case LFUN_EXTERNAL_EDIT: {
+ case LFUN_INSET_EDIT: {
FuncRequest fr(cmd);
- InsetExternal * inset = getInsetByCode<InsetExternal>(d->cursor_,
- EXTERNAL_CODE);
+ // if there is an inset at cursor, see whether it
+ // can be modified.
+ Inset * inset = cur.nextInset();
if (inset)
- inset->dispatch(d->cursor_, fr);
- break;
- }
-
+ inset->dispatch(cur, fr);
+ // if it did not work, try the underlying inset.
+ if (!inset || !cur.result().dispatched())
+ cur.dispatch(cmd);
- case LFUN_GRAPHICS_EDIT: {
- FuncRequest fr(cmd);
- InsetGraphics * inset = getInsetByCode<InsetGraphics>(d->cursor_,
- GRAPHICS_CODE);
- if (inset)
- inset->dispatch(d->cursor_, fr);
- break;
+ if (!cur.result().dispatched())
+ // It did not work too; no action needed.
+ break;
}
case LFUN_PARAGRAPH_GOTO: {
buffer_.params().compressed = !buffer_.params().compressed;
break;
- case LFUN_BUFFER_TOGGLE_EMBEDDING: {
- // turn embedding on/off
- try {
- buffer_.embeddedFiles().enable(!buffer_.params().embedded, buffer_, true);
- } catch (ExceptionMessage const & message) {
- Alert::error(message.title_, message.details_);
- }
- break;
- }
-
case LFUN_NEXT_INSET_TOGGLE: {
// this is the real function we want to invoke
FuncRequest tmpcmd = FuncRequest(LFUN_INSET_TOGGLE, cmd.origin);