- if (!bv->available())
- return;
-
- if (bv->theLockingInset()) {
- bv->theLockingInset()->setFont(bv, font, toggleall);
- return;
- }
-
- LyXText * text = bv->getLyXText();
- // FIXME: can this happen ??
- if (!text)
- return;
-
- bv->update(text, BufferView::SELECT);
- text->toggleFree(font, toggleall);
- bv->update(text, BufferView::SELECT);
-
- if (font.language() != ignore_language ||
- font.number() != LyXFont::IGNORE) {
- LyXCursor & cursor = text->cursor;
- text->computeBidiTables(bv->buffer(), cursor.row());
- if (cursor.boundary() !=
- text->isBoundary(bv->buffer(), *cursor.par(), cursor.pos(),
- text->real_current_font))
- text->setCursor(cursor.par(), cursor.pos(),
- false, !cursor.boundary());
- }