dispatch(FuncRequest(LFUN_SELF_INSERT, arg,
FuncRequest::KEYBOARD));
LYXERR(Debug::KEY, "SelfInsert arg[`" << to_utf8(arg) << "']");
- lyx_view_->updateCompletion(true, true);
}
} else {
dispatch(func);
if (!lyx_view_)
return;
- if (func.action == LFUN_CHAR_DELETE_BACKWARD)
- // backspace is not a self-insertion. But it
- // still should not hide the completion popup.
- // FIXME: more clever way to detect those movements
- lyx_view_->updateCompletion(false, true);
- else
- lyx_view_->updateCompletion(false, false);
}
if (lyx_view_)
}
-bool loadTextClass(string const & name, string const & buf_path)
+bool loadLayoutFile(string const & name, string const & buf_path)
{
if (!BaseClassList::get().haveClass(name)) {
lyxerr << "Document class \"" << name
return false;
}
- TextClass const & tc = BaseClassList::get()[name];
+ LayoutFile & tc = BaseClassList::get()[name];
if (!tc.load(buf_path)) {
docstring s = bformat(_("The document class %1$s."
"could not be loaded."), from_utf8(name));
BOOST_ASSERT(lyx_view_);
Buffer * buffer = lyx_view_->buffer();
- if (!loadTextClass(argument, buffer->filePath()))
+ if (!loadLayoutFile(argument, buffer->filePath()))
break;
- TextClass const * old_class = buffer->params().baseClass();
- TextClass const * new_class = &(BaseClassList::get()[argument]);
+ LayoutFile const * old_layout = buffer->params().baseClass();
+ LayoutFile const * new_layout = &(BaseClassList::get()[argument]);
- if (old_class == new_class)
+ if (old_layout == new_layout)
// nothing to do
break;
BOOST_ASSERT(lyx_view_);
Buffer * buffer = lyx_view_->buffer();
DocumentClass * oldClass = buffer->params().documentClassPtr();
- BaseClassIndex bc = buffer->params().baseClassID();
+ LayoutFileIndex bc = buffer->params().baseClassID();
BaseClassList::get().reset(bc);
buffer->params().makeDocumentClass();
updateLayout(oldClass, buffer);
}
case LFUN_TEXTCLASS_LOAD:
- loadTextClass(argument, lyx_view_->buffer()->filePath());
+ loadLayoutFile(argument, lyx_view_->buffer()->filePath());
break;
case LFUN_LYXRC_APPLY: {
view()->cursor().fixIfBroken();
}
+ // update completion. We do it here and not in
+ // processKeySym to avoid another redraw just for a
+ // changed inline completion
+ if (cmd.origin == FuncRequest::KEYBOARD) {
+ if (cmd.action == LFUN_SELF_INSERT)
+ lyx_view_->updateCompletion(view()->cursor(), true, true);
+ else if (cmd.action == LFUN_CHAR_DELETE_BACKWARD)
+ lyx_view_->updateCompletion(view()->cursor(), false, true);
+ else
+ lyx_view_->updateCompletion(view()->cursor(), false, false);
+ }
+
updateFlags = view()->cursor().result().update();
}