X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbufferview_funcs.C;h=1742f69441c020af5e37ae6eb58933d8388546aa;hb=f268743f8c014ef2dadd260fd1a3873cb1d2038b;hp=4914580145fe12d65499f698adb994a3d9653c02;hpb=4b14c1d9be0a03a0e103c957024a4b4b26481484;p=lyx.git diff --git a/src/bufferview_funcs.C b/src/bufferview_funcs.C index 4914580145..1742f69441 100644 --- a/src/bufferview_funcs.C +++ b/src/bufferview_funcs.C @@ -3,12 +3,12 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author Lars Gullik Bjønnes + * \author Lars Gullik Bjønnes * \author Jean-Marc Lasgouttes * \author John Levon * \author Angus Leeming * - * Full author contact details are available in file CREDITS + * Full author contact details are available in file CREDITS. */ #include @@ -35,6 +35,11 @@ #include "Lsstream.h" #include "insets/updatableinset.h" +#include "insets/insettext.h" +#include +#include + +using namespace lyx::support; namespace { @@ -205,13 +210,14 @@ void number(BufferView * bv) toggleAndShow(bv, font); } + void lang(BufferView * bv, string const & l) { - LyXFont font(LyXFont::ALL_IGNORE); Language const * lang = languages.getLanguage(l); if (!lang) return; + LyXFont font(LyXFont::ALL_IGNORE); font.setLanguage(lang); toggleAndShow(bv, font); } @@ -220,16 +226,14 @@ void lang(BufferView * bv, string const & l) bool changeDepth(BufferView * bv, LyXText * text, DEPTH_CHANGE type, bool test_only) { if (!bv->available() || !text) - return false; + return false; if (test_only) return text->changeDepth(type, true); - bv->update(BufferView::SELECT); bool const changed = text->changeDepth(type, false); if (text->inset_owner) - bv->updateInset((Inset *)text->inset_owner); - bv->update(BufferView::SELECT); + bv->updateInset(text->inset_owner); return changed; } @@ -380,24 +384,30 @@ void toggleAndShow(BufferView * bv, LyXFont const & font, bool toggleall) } 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); + bv->update(); if (font.language() != ignore_language || font.number() != LyXFont::IGNORE) { LyXCursor & cursor = text->cursor; - text->computeBidiTables(bv->buffer(), cursor.row()); + text->computeBidiTables(text->cursor.par(), *bv->buffer(), + text->cursorRow()); if (cursor.boundary() != - text->isBoundary(bv->buffer(), *cursor.par(), cursor.pos(), + text->isBoundary(*bv->buffer(), *cursor.par(), cursor.pos(), text->real_current_font)) text->setCursor(cursor.par(), cursor.pos(), false, !cursor.boundary()); } } + +// deletes a selection during an insertion +void replaceSelection(LyXText * lt) +{ + if (lt->selection.set()) { + lt->cutSelection(true, false); + lt->bv()->update(); + } +} + }; // namespace bv_funcs