X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetIPA.cpp;h=29ed00037fa0e010577db6f3bcc2934b31c4d287;hb=239b9919ffe28338d789e6dc9122228f77ab77a7;hp=8bc3d46eecc2aad15dc68f9a740777bf65882e59;hpb=cea2d71e641e6a4023128a367d1cd5a593ed1706;p=lyx.git diff --git a/src/insets/InsetIPA.cpp b/src/insets/InsetIPA.cpp index 8bc3d46eec..29ed00037f 100644 --- a/src/insets/InsetIPA.cpp +++ b/src/insets/InsetIPA.cpp @@ -22,6 +22,7 @@ #include "MetricsInfo.h" #include "OutputParams.h" #include "RenderPreview.h" +#include "texstream.h" #include "frontends/Painter.h" @@ -36,7 +37,7 @@ namespace lyx { InsetIPA::InsetIPA(Buffer * buf) : InsetText(buf), - preview_(new RenderPreview(this)), use_preview_(true) + preview_(new RenderPreview(this)) { setDrawFrame(true); setFrameColor(Color_insetframe); @@ -120,9 +121,8 @@ void InsetIPA::addPreview(DocIterator const & inset_pos, void InsetIPA::preparePreview(DocIterator const & pos) const { - TexRow texrow; - odocstringstream str; - otexstream os(str, texrow); + odocstringstream str; + otexstream os(str); OutputParams runparams(&pos.buffer()->params().encoding()); latex(os, runparams); docstring const snippet = str.str(); @@ -150,11 +150,8 @@ void InsetIPA::reloadPreview(DocIterator const & pos) const void InsetIPA::draw(PainterInfo & pi, int x, int y) const { - use_preview_ = previewState(pi.base.bv); - - if (use_preview_) { - preview_->draw(pi, x + TEXT_TO_INSET_OFFSET, y); - setPosCache(pi, x, y); + if (previewState(pi.base.bv)) { + preview_->draw(pi, x, y); return; } InsetText::draw(pi, x, y); @@ -170,7 +167,7 @@ void InsetIPA::edit(Cursor & cur, bool front, EntryDirection entry_from) Inset * InsetIPA::editXY(Cursor & cur, int x, int y) { - if (use_preview_) { + if (previewState(&cur.bv())) { edit(cur, true, ENTRY_DIRECTION_IGNORE); return this; } @@ -183,20 +180,14 @@ void InsetIPA::metrics(MetricsInfo & mi, Dimension & dim) const { if (previewState(mi.base.bv)) { preview_->metrics(mi, dim); - mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET; - + dim.wid = max(dim.wid, 4); dim.asc = max(dim.asc, 4); - + dim.asc += TEXT_TO_INSET_OFFSET; dim.des += TEXT_TO_INSET_OFFSET; - dim.wid += TEXT_TO_INSET_OFFSET; - dim_ = dim; - dim.wid += TEXT_TO_INSET_OFFSET; // insert a one pixel gap dim.wid += 1; - // Cache the inset dimension. - setDimCache(mi, dim); Dimension dim_dummy; MetricsInfo mi_dummy = mi; InsetText::metrics(mi_dummy, dim_dummy);