X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbufferview_funcs.C;h=1742f69441c020af5e37ae6eb58933d8388546aa;hb=f268743f8c014ef2dadd260fd1a3873cb1d2038b;hp=9f86aeed3f8eda120b0b2a7917d0d31c040ddbc7;hpb=9bc730abdb60f9c7959f7d2bba5601e023983c23;p=lyx.git diff --git a/src/bufferview_funcs.C b/src/bufferview_funcs.C index 9f86aeed3f..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,7 @@ #include "Lsstream.h" #include "insets/updatableinset.h" +#include "insets/insettext.h" #include #include @@ -50,16 +51,6 @@ bool toggleall(false); namespace bv_funcs { - -void resizeInsets(BufferView * bv) -{ - ParagraphList & paragraphs = bv->buffer()->paragraphs; - /// then remove all LyXText in text-insets - std::for_each(paragraphs.begin(), paragraphs.end(), - boost::bind(&Paragraph::resizeInsetsLyXText, _1, bv)); -} - - // Set data using font and toggle // If successful, returns true bool font2string(LyXFont const & font, bool toggle, string & data) @@ -219,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); } @@ -234,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; } @@ -394,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(), text->cursorRow()); + 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