cur.clearSelection(); // bug 393
cur.finishUndo();
InsetText * insetText = dynamic_cast<InsetText *>(inset);
- if (insetText && !insetText->allowMultiPar() || cur.lastpit() == 0) {
+ if (insetText && (!insetText->allowMultiPar() || cur.lastpit() == 0)) {
// reset first par to default
cur.text()->paragraphs().begin()
->setPlainOrDefaultLayout(bparams.documentClass());
} else {
cur.leaveInset(*inset);
// reset surrounding par to default
- docstring const layoutname = insetText->usePlainLayout()
- ? bparams.documentClass().plainLayoutName()
- : bparams.documentClass().defaultLayoutName();
+ DocumentClass const & dc = bparams.documentClass();
+ docstring const layoutname = inset->usePlainLayout()
+ ? dc.plainLayoutName()
+ : dc.defaultLayoutName();
text->setLayout(cur, layoutname);
}
bv->cursor().finishUndo();
break;
- case mouse_button::button3:
- if (cur.selection()) {
- DocIterator const selbeg = cur.selectionBegin();
- DocIterator const selend = cur.selectionEnd();
- Cursor tmpcur = cur;
- tm.setCursorFromCoordinates(tmpcur, cmd.x, cmd.y);
- // Don't do anything if we right-click a selection, a selection
- // context menu should popup instead.
- if (tmpcur < selbeg || tmpcur >= selend) {
- cur.noUpdate();
- return;
- }
+ case mouse_button::button3: {
+ Cursor const & bvcur = cur.bv().cursor();
+ // Don't do anything if we right-click a
+ // selection, a context menu will popup.
+ if (bvcur.selection() && cur >= bvcur.selectionBegin()
+ && cur <= bvcur.selectionEnd()) {
+ cur.noUpdate();
+ return;
}
- if (!bv->mouseSetCursor(cur, false)) {
+ if (!bv->mouseSetCursor(cur, false))
cur.updateFlags(Update::SinglePar | Update::FitCursor);
- break;
- }
+ break;
+ }
+
default:
break;
} // switch (cmd.button())
}
case LFUN_NOMENCL_INSERT: {
- FuncRequest cmd1 = cmd;
+ InsetCommandParams p(NOMENCL_CODE);
if (cmd.argument().empty())
- cmd1 = FuncRequest(cmd,
- bv->cursor().innerText()->getStringToIndex(bv->cursor()));
- Inset * inset = createInset(cur.bv().buffer(), cmd1);
- if (!inset)
- break;
- cur.recordUndo();
- cur.clearSelection();
- insertInset(cur, inset);
- // Show the dialog for the nomenclature entry, since the
- // description entry still needs to be filled in.
- if (cmd.action == LFUN_NOMENCL_INSERT)
- inset->edit(cur, true);
- cur.posForward();
+ p["symbol"] = bv->cursor().innerText()->getStringToIndex(bv->cursor());
+ else
+ p["symbol"] = cmd.argument();
+ string const data = InsetCommand::params2string("nomenclature", p);
+ bv->showDialog("nomenclature", data);
break;
}
code = INDEX_PRINT_CODE;
break;
case LFUN_NOMENCL_INSERT:
+ if (cur.selIsMultiCell() || cur.selIsMultiLine()) {
+ enable = false;
+ break;
+ }
code = NOMENCL_CODE;
break;
case LFUN_NOMENCL_PRINT:
code = TOC_CODE;
break;
case LFUN_HYPERLINK_INSERT:
+ if (cur.selIsMultiCell() || cur.selIsMultiLine()) {
+ enable = false;
+ break;
+ }
code = HYPERLINK_CODE;
break;
case LFUN_QUOTE_INSERT: