enable = false;
if (!cur)
break;
- UpdatableInset * inset = cur.inset().asUpdatableInset();
- lyxerr << "inset: " << inset << endl;
- if (!inset)
- break;
-
- InsetBase::Code code = inset->lyxCode();
+ InsetBase::Code code = cur.inset().lyxCode();
switch (code) {
case InsetBase::TABULAR_CODE:
enable = cmd.argument == "tabular";
break;
case LFUN_QUIT:
- QuitLyX();
+ QuitLyX(argument == "force");
break;
case LFUN_TOCVIEW: {
}
case LFUN_TEXTCLASS_APPLY: {
+ recordUndoFullDocument(view());
Buffer * buffer = owner->buffer();
lyx::textclass_type const old_class =
break;
owner->message(_("Converting document to new document class..."));
+ StableDocIterator backcur(view()->cursor());
ErrorList el;
lyx::cap::SwitchBetweenClasses(
old_class, new_class,
buffer->paragraphs(), el);
+ view()->setCursor(backcur.asDocIterator(&(buffer->inset())));
bufferErrors(*buffer, el);
view()->showErrorList(_("Class switch"));
updateCounters(*buffer);
default: {
view()->cursor().dispatch(cmd);
update |= view()->cursor().result().update();
- if (!view()->cursor().result().dispatched()) {
+ if (!view()->cursor().result().dispatched())
update |= view()->dispatch(cmd);
- }
-
break;
}
}
- BOOST_ASSERT(view());
if (view()->available()) {
// Redraw screen unless explicitly told otherwise.
// This also initializes the position cache for all insets
// in (at least partially) visible top-level paragraphs.
- view()->update(true, update);
+ if (update)
+ view()->update(Update::FitCursor | Update::Force);
+ else
+ view()->update(Update::FitCursor);
// if we executed a mutating lfun, mark the buffer as dirty
// FIXME: Why not use flag.enabled() but call getStatus again?
string const shortcuts = toplevel_keymap->printbindings(cmd);
- if (!shortcuts.empty()) {
+ if (!shortcuts.empty())
comname += ": " + shortcuts;
- } else if (!argsadded && !cmd.argument.empty()) {
+ else if (!argsadded && !cmd.argument.empty())
comname += ' ' + cmd.argument;
- }
if (!comname.empty()) {
comname = rtrim(comname);
- dispatch_msg += '(' + comname + ')';
+ dispatch_msg += '(' + rtrim(comname) + ')';
}
lyxerr[Debug::ACTION] << "verbose dispatch msg " << dispatch_msg << endl;