]> git.lyx.org Git - features.git/commitdiff
remove Inset::getParagraphs()
authorAndré Pönitz <poenitz@gmx.net>
Wed, 3 Dec 2003 18:17:20 +0000 (18:17 +0000)
committerAndré Pönitz <poenitz@gmx.net>
Wed, 3 Dec 2003 18:17:20 +0000 (18:17 +0000)
cache 'outermost' inset font

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@8192 a592a061-630c-0410-9148-cb99ea01b6c8

20 files changed:
src/ChangeLog
src/PosIterator.C
src/insets/ChangeLog
src/insets/inset.h
src/insets/insetcollapsable.C
src/insets/insetcollapsable.h
src/insets/insetert.C
src/insets/insetert.h
src/insets/insetnote.C
src/insets/insetnote.h
src/insets/insettabular.C
src/insets/insettabular.h
src/insets/insettext.C
src/insets/insettext.h
src/iterators.C
src/lyxtext.h
src/output_latex.C
src/paragraph_funcs.C
src/text.C
src/text2.C

index 24c2db178a0ed41d6702ec5247c5e297e1c3742e..630da56e7d9fec2e6900e5169d93b259d84edc85 100644 (file)
@@ -1,4 +1,14 @@
 
+2003-12-03  André Pönitz  <poenitz@gmx.net>
+
+       * PosIterator.C:
+       * iterators.C:
+       * lyxtext.h:
+       * output_latex.C:
+       * paragraph_funcs.C:
+       * text.C:
+       * text2.C: use Inset::getText instead of Inset::getParagraph
+
 2003-12-03  André Pönitz  <poenitz@gmx.net>
 
        * buffer.[Ch]:
index ef53d4a64b45e37913de1d6f7382229fb7d3960e..bd3c6c3ec42622af804c56423129516a26df5984 100644 (file)
@@ -33,12 +33,11 @@ PosIterator & PosIterator::operator++()
                PosIteratorItem & p = stack_.back();
                
                if (p.pos < p.pit->size()) {
-                       InsetOld * inset = p.pit->getInset(p.pos);
-                       if (inset) {
-                               ParagraphList * pl = inset->getParagraphs(p.index);
-                               if (pl) {
+                       if (InsetOld * inset = p.pit->getInset(p.pos)) {
+                               if (LyXText * text = inset->getText(p.index)) {
+                                       ParagraphList & pl = text->paragraphs();
                                        p.index++;
-                                       stack_.push_back(PosIteratorItem(pl, pl->begin(), 0));
+                                       stack_.push_back(PosIteratorItem(&pl, pl.begin(), 0));
                                        return *this;
                                }
                        }
@@ -86,10 +85,10 @@ PosIterator & PosIterator::operator--()
        if (q.pos < q.pit->size()) {
                InsetOld * inset = q.pit->getInset(q.pos);
                if (inset && q.index > 0) {
-                       ParagraphList *
-                               pl = inset->getParagraphs(q.index - 1);
-                       BOOST_ASSERT(pl);
-                       stack_.push_back(PosIteratorItem(pl, prior(pl->end()), pl->back().size()));
+                       LyXText * text = inset->getText(q.index - 1);
+                       BOOST_ASSERT(text);
+                       ParagraphList & pl = text->paragraphs();
+                       stack_.push_back(PosIteratorItem(&pl, prior(pl.end()), pl.back().size()));
                }
        }
        return *this;
@@ -156,7 +155,8 @@ int distance(PosIterator const & cur, PosIterator const & end)
 {
        PosIterator p = cur;
        int count = 0;
-       for (; p != end; ++p, ++count);
+       for (; p != end; ++p, ++count)
+               ;
        return count;
 }
 
index 1ddaaa26274ae254f4b794234a48790d8ecde52f..b7d20cd6d78955e9565b6fb1616f9ba70651bda4 100644 (file)
@@ -1,3 +1,14 @@
+
+2003-12-03  André Pönitz  <poenitz@gmx.net>
+
+       * inset.h: remove getParagraphs()
+
+       * insetcollapsable.[Ch]:
+       * insetert.[Ch]:
+       * insetnote.[Ch]:
+       * insettabular.[Ch]:
+       * insettext.C: use getText()  instead of getParagraphs()
+
 2003-12-03  Martin Vermeer  <martin.vermeer@hut.fi>
 
        * insetert.C: fix label text updating bug
index 1ec2999999b059cba520189292ac65fc8eb32a16..0539f91dc990b35f3c9491843e6b3fde901829a5 100644 (file)
@@ -25,7 +25,6 @@ class LColor_color;
 class FuncRequest;
 class OutputParams;
 class LyXCursor;
-class LyXFont;
 class LyXLex;
 class LyXText;
 class Painter;
@@ -223,10 +222,7 @@ public:
        /// returns the actual scroll-value
        virtual int scroll(bool recursive = true) const;
 
-       /// if this insets owns paragraphs (f.ex. InsetText) then it
-       /// should return it's very first one!
-       virtual ParagraphList * getParagraphs(int /*num*/) const { return 0; }
-       ///
+       /// if this insets owns text cells (e.g. InsetText) return cell num
        virtual LyXText * getText(int /*num*/) const { return 0; }
        ///
        virtual int numParagraphs() const { return 0; }
@@ -256,8 +252,6 @@ public:
            be closed before generating this inset. This is needed for
            insets that may contain several paragraphs */
        virtual bool noFontChange() const { return false; }
-       //
-       virtual void getDrawFont(LyXFont &) const {}
 
        /// mark the inset contents as erased (for change tracking)
        virtual void markErased() {}
index 9f8cac0f42738a934c3f55c3413c40debb771553..918f1c2c723d9c84ee448a597c9b2a6d2c609372 100644 (file)
@@ -375,12 +375,6 @@ int InsetCollapsable::scroll(bool recursive) const
 }
 
 
-ParagraphList * InsetCollapsable::getParagraphs(int i) const
-{
-       return inset.getParagraphs(i);
-}
-
-
 int InsetCollapsable::numParagraphs() const
 {
        return inset.numParagraphs();
index a662c6bc18a984cd639f34a41d355ae9b45dfd14..8cb7df7ae804ba55c9d7047a7bf8614d5bb844e0 100644 (file)
@@ -99,8 +99,6 @@ public:
        ///
        void scroll(BufferView *bv, int offset) const;
        ///
-       ParagraphList * getParagraphs(int) const;
-       ///
        int numParagraphs() const;
        ///
        LyXText * getText(int) const;
index f6712daf8e888b34d24ee0119779ca2fd504dd21..3fef4e1a640df843cd531777abeea63f610637b5 100644 (file)
@@ -385,12 +385,10 @@ int InsetERT::docbook(Buffer const &, ostream & os,
 
 void InsetERT::edit(BufferView * bv, bool left)
 {
-       if (status_ == Inlined) {
+       if (status_ == Inlined)
                inset.edit(bv, left);
-       } else {
+       else
                InsetCollapsable::edit(bv, left);
-       }
-       setLatexFont(bv);
        updateStatus();
 }
 
@@ -400,9 +398,6 @@ InsetERT::priv_dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos)
 {
        BufferView * bv = cmd.view();
 
-       if (inset.paragraphs().begin()->empty())
-               setLatexFont(bv);
-
        switch (cmd.action) {
 
        case LFUN_INSET_MODIFY: {
@@ -428,17 +423,6 @@ InsetERT::priv_dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos)
                bv->owner()->setLayout(inset.paragraphs().begin()->layout()->name());
                return DispatchResult(true);
 
-       case LFUN_BREAKPARAGRAPH:
-       case LFUN_BREAKPARAGRAPHKEEPLAYOUT:
-       case LFUN_BACKSPACE:
-       case LFUN_BACKSPACE_SKIP:
-       case LFUN_DELETE:
-       case LFUN_DELETE_SKIP:
-       case LFUN_DELETE_LINE_FORWARD:
-       case LFUN_CUT:
-               setLatexFont(bv);
-               return InsetCollapsable::priv_dispatch(cmd, idx, pos);
-
        default:
                return InsetCollapsable::priv_dispatch(cmd, idx, pos);
        }
@@ -459,25 +443,20 @@ bool InsetERT::insetAllowed(InsetOld::Code code) const
 
 void InsetERT::metrics(MetricsInfo & mi, Dimension & dim) const
 {
+       LyXFont tmpfont = mi.base.font;
+       getDrawFont(mi.base.font);
        InsetCollapsable::metrics(mi, dim);
+       mi.base.font = tmpfont;
        dim_ = dim;
 }
 
 
 void InsetERT::draw(PainterInfo & pi, int x, int y) const
 {
+       LyXFont tmpfont = pi.base.font;
+       getDrawFont(pi.base.font);
        InsetCollapsable::draw(pi, x, y);
-}
-
-
-void InsetERT::setLatexFont(BufferView * /*bv*/)
-{
-#ifdef SET_HARD_FONT
-       LyXFont font(LyXFont::ALL_INHERIT, latex_language);
-       font.setFamily(LyXFont::TYPEWRITER_FAMILY);
-       font.setColor(LColor::latex);
-       inset.text_.setFont(bv, font, false);
-#endif
+       pi.base.font = tmpfont;
 }
 
 
index 4c8796963827227821493972b995376ace156333..e2c295565bdfbd33ca9d4511f5246c3c22471479 100644 (file)
@@ -98,8 +98,6 @@ private:
        void init();
        ///
        void setButtonLabel() const;
-       ///
-       void setLatexFont(BufferView *);
        /// update status on button
        void updateStatus(bool = false) const;
        ///
index 655ac167024e51b35c0d16422163cc24fd37296f..4e64471950252f4e0d974ab0c60da47c89c9f771 100644 (file)
@@ -111,18 +111,6 @@ void InsetNote::setButtonLabel()
 }
 
 
-void InsetNote::metrics(MetricsInfo & mi, Dimension & dim) const
-{
-       InsetCollapsable::metrics(mi, dim);
-       // Contrary to Greyedout, these cannot be construed as part of the
-       // running text: make them stand on their own
-       if (params_.type == "Note" || params_.type == "Comment")
-               if (isOpen())
-                       dim.wid = mi.base.textwidth;
-       dim_ = dim;
-}
-
-
 bool InsetNote::showInsetDialog(BufferView * bv) const
 {
        InsetNoteMailer("note", const_cast<InsetNote &>(*this)).showDialog(bv);
index 98a8b6687d2e79e07566ecfcbabe20049e25d947..3a88423824e1e6c375a9bc6caf37305d243acfb2 100644 (file)
@@ -31,8 +31,6 @@ struct InsetNoteParams {
 class InsetNote : public InsetCollapsable {
 public:
        ///
-
-
        InsetNote(BufferParams const &, std::string const &);
        /// Copy constructor
        InsetNote(InsetNote const &);
@@ -50,22 +48,20 @@ public:
        void read(Buffer const & buf, LyXLex & lex);
        ///
        void setButtonLabel();
-       ///
-       void metrics(MetricsInfo &, Dimension &) const;
        /// show the note dialog
        bool showInsetDialog(BufferView * bv) const;
        ///
        int latex(Buffer const &, std::ostream &,
-                 OutputParams const &) const;
+              OutputParams const &) const;
        ///
        int linuxdoc(Buffer const &, std::ostream &,
-                    OutputParams const &) const;
+              OutputParams const &) const;
        ///
        int docbook(Buffer const &, std::ostream &,
-                   OutputParams const &) const;
+              OutputParams const &) const;
        ///
        int plaintext(Buffer const &, std::ostream &,
-                 OutputParams const &) const;
+              OutputParams const &) const;
        ///
        void validate(LaTeXFeatures &) const;
        ///
index 5121c2305a777d9ec11f5439f4a3f4c4c4911a32..528f769378efd0ca3318c20d2e558092c96fb0d2 100644 (file)
@@ -1965,14 +1965,6 @@ void InsetTabular::getSelection(int & srow, int & erow,
 }
 
 
-ParagraphList * InsetTabular::getParagraphs(int i) const
-{
-       return i < tabular.getNumberOfCells()
-               ? tabular.getCellInset(i).getParagraphs(0)
-               : 0;
-}
-
-
 int InsetTabular::numParagraphs() const
 {
        return tabular.getNumberOfCells();
index 6e77196f5aac8ab59944858882f7744048384878..cf3875ea054ec4c029dff9511f3cd581e2267719 100644 (file)
@@ -125,18 +125,16 @@ public:
        /// Appends \c list with all labels found within this inset.
        void getLabelList(Buffer const &, std::vector<std::string> & list) const;
        ///
-       int scroll(bool recursive=true) const;
+       int scroll(bool recursive = true) const;
        ///
-       void scroll(BufferView *bv, float sx) const {
+       void scroll(BufferView * bv, float sx) const {
                UpdatableInset::scroll(bv, sx);
        }
        ///
-       void scroll(BufferView *bv, int offset) const {
+       void scroll(BufferView * bv, int offset) const {
                UpdatableInset::scroll(bv, offset);
        }
        ///
-       ParagraphList * getParagraphs(int) const;
-       ///
        int numParagraphs() const;
        ///
        LyXText * getText(int) const;
index c5c8c7258f516a6f0ee165273d72b9b95e26f8ab..d5c548784bab620e9a909fa77175e178dc53d539 100644 (file)
@@ -176,14 +176,16 @@ void InsetText::read(Buffer const & buf, LyXLex & lex)
 void InsetText::metrics(MetricsInfo & mi, Dimension & dim) const
 {
        //lyxerr << "InsetText::metrics: width: " << mi.base.textwidth << endl;
-       mi.base.textwidth -= 2 * TEXT_TO_INSET_OFFSET;
        setViewCache(mi.base.bv);
+       mi.base.textwidth -= 2 * TEXT_TO_INSET_OFFSET;
        text_.metrics(mi, dim);
        dim.asc += TEXT_TO_INSET_OFFSET;
        dim.des += TEXT_TO_INSET_OFFSET;
        dim.wid += 2 * TEXT_TO_INSET_OFFSET;
        mi.base.textwidth += 2 * TEXT_TO_INSET_OFFSET;
        dim_ = dim;
+       font_ = mi.base.font;
+       text_.font_ = mi.base.font;
 }
 
 
@@ -270,9 +272,8 @@ extern LCursor theTempCursor;
 void InsetText::edit(BufferView * bv, bool left)
 {
        lyxerr << "InsetText: edit left/right" << endl;
-       setViewCache(bv);
-
        old_par = -1;
+       setViewCache(bv);
 
        if (left)
                text_.setCursorIntern(0, 0);
@@ -289,6 +290,7 @@ void InsetText::edit(BufferView * bv, int x, int y)
 {
        lyxerr << "InsetText::edit xy" << endl;
        old_par = -1;
+
        sanitizeEmptyText(bv);
        text_.setCursorFromCoordinates(x - text_.xo_, y + bv->top_y()
                                       - text_.yo_);
@@ -534,12 +536,6 @@ void InsetText::clearInset(Painter & pain, int x, int y) const
 }
 
 
-ParagraphList * InsetText::getParagraphs(int i) const
-{
-       return (i == 0) ? const_cast<ParagraphList*>(&paragraphs()) : 0;
-}
-
-
 LyXText * InsetText::getText(int i) const
 {
        return (i == 0) ? const_cast<LyXText*>(&text_) : 0;
@@ -577,13 +573,6 @@ void InsetText::collapseParagraphs(BufferView * bv)
 }
 
 
-void InsetText::getDrawFont(LyXFont & font) const
-{
-       if (owner())
-               owner()->getDrawFont(font);
-}
-
-
 void InsetText::appendParagraphs(Buffer * buffer, ParagraphList & plist)
 {
 #warning FIXME Check if Changes stuff needs changing here. (Lgb)
index 46708539d0ba2ebb0af0fd411fa8a863ed4a33c0..4dd4f5dd573d5479759044608f65555b51195c38 100644 (file)
@@ -15,6 +15,7 @@
 #include "updatableinset.h"
 #include "ParagraphList_fwd.h"
 #include "RowList_fwd.h"
+#include "lyxfont.h"
 #include "lyxtext.h"
 
 #include "support/types.h"
@@ -125,8 +126,6 @@ public:
                UpdatableInset::scroll(bv, offset);
        }
        ///
-       ParagraphList * getParagraphs(int) const;
-       ///
        LyXText * getText(int) const;
 
        /// mark as erased for change tracking
@@ -140,8 +139,6 @@ public:
         */
        void markNew(bool track_changes = false);
 
-       ///
-       void getDrawFont(LyXFont &) const;
        /// append text onto the existing text
        void appendParagraphs(Buffer * bp, ParagraphList &);
 
@@ -199,5 +196,7 @@ private:
 public:
        ///
        mutable LyXText text_;
+       ///
+       mutable LyXFont font_;
 };
 #endif
index 3cb674f559e7446238589fab3c5f5111d2e92132..f2e323aa72031721bc37eec4a13be6af927e8874 100644 (file)
@@ -110,26 +110,31 @@ ParIterator & ParIterator::operator++()
                // Does the current inset contain more "cells" ?
                if (p.index) {
                        ++(*p.index);
-                       ParagraphList * plist = (*p.it)->inset->getParagraphs(*p.index);
-                       if (plist && !plist->empty()) {
-                               pimpl_->positions.push_back(ParPosition(plist->begin(), *plist));
-                               return *this;
+                       if (LyXText * text = (*p.it)->inset->getText(*p.index)) {
+                               ParagraphList & plist = text->paragraphs();
+                               if (!plist.empty()) {
+                                       pimpl_->positions.push_back(ParPosition(plist.begin(), plist));
+                                       return *this;
+                               }
                        }
                        ++(*p.it);
-               } else
+               } else {
                        // The following line is needed because the value of
                        // p.it may be invalid if inset was added/removed to
                        // the paragraph pointed by the iterator
                        p.it.reset(p.pit->insetlist.begin());
+               }
 
                // Try to find the next inset that contains paragraphs
                InsetList::iterator end = p.pit->insetlist.end();
                for (; *p.it != end; ++(*p.it)) {
-                       ParagraphList * plist = (*p.it)->inset->getParagraphs(0);
-                       if (plist && !plist->empty()) {
-                               p.index.reset(0);
-                               pimpl_->positions.push_back(ParPosition(plist->begin(), *plist));
-                               return *this;
+                       if (LyXText * text = (*p.it)->inset->getText(0)) {
+                               ParagraphList & plist = text->paragraphs();
+                               if (!plist.empty()) {
+                                       p.index.reset(0);
+                                       pimpl_->positions.push_back(ParPosition(plist.begin(), plist));
+                                       return *this;
+                               }
                        }
                }
 
@@ -265,26 +270,31 @@ ParConstIterator & ParConstIterator::operator++()
                // Does the current inset contain more "cells" ?
                if (p.index) {
                        ++(*p.index);
-                       ParagraphList * plist = (*p.it)->inset->getParagraphs(*p.index);
-                       if (plist && !plist->empty()) {
-                               pimpl_->positions.push_back(ParPosition(plist->begin(), *plist));
-                               return *this;
+                       if (LyXText * text = (*p.it)->inset->getText(*p.index)) {
+                               ParagraphList & plist = text->paragraphs();
+                               if (!plist.empty()) {
+                                       pimpl_->positions.push_back(ParPosition(plist.begin(), plist));
+                                       return *this;
+                               }
                        }
                        ++(*p.it);
-               } else
+               } else {
                        // The following line is needed because the value of
                        // p.it may be invalid if inset was added/removed to
                        // the paragraph pointed by the iterator
                        p.it.reset(p.pit->insetlist.begin());
+               }
 
                // Try to find the next inset that contains paragraphs
                InsetList::iterator end = p.pit->insetlist.end();
                for (; *p.it != end; ++(*p.it)) {
-                       ParagraphList * plist = (*p.it)->inset->getParagraphs(0);
-                       if (plist && !plist->empty()) {
-                               p.index.reset(0);
-                               pimpl_->positions.push_back(ParPosition(plist->begin(), *plist));
-                               return *this;
+                       if (LyXText * text = (*p.it)->inset->getText(*p.index)) {
+                               ParagraphList & plist = text->paragraphs();
+                               if (!plist.empty()) {
+                                       p.index.reset(0);
+                                       pimpl_->positions.push_back(ParPosition(plist.begin(), plist));
+                                       return *this;
+                               }
                        }
                }
 
index 1784d0d82c45641178fe1d2f47976394b9f45a99..a5a82ffdb1b986f0140b57995cb118685b083dfd 100644 (file)
@@ -426,6 +426,9 @@ public:
        mutable int xo_;
        mutable int yo_;
 
+       /// our 'outermost' Font
+       LyXFont font_;
+
 
 private:
        /// rebreaks the given par
index a2fe85b5c13707f5ab4f0959febf907f3f414d69..837c6dbc32db369fbd1ebed7a0a4486889043350 100644 (file)
@@ -426,7 +426,7 @@ TeXOnePar(Buffer const & buf,
        return ++pit;
 }
 
-} //anon namespace
+} // anon namespace
 
 //
 // LaTeX all paragraphs from par to endpar, if endpar == 0 then to the end
index 4e9ee69b8ce9d295b93eed6944d1edf9a1b465ac..17bb406577a027c989a02f631892270eac451508 100644 (file)
@@ -564,11 +564,10 @@ ParagraphList::iterator outerPar(Buffer const & buf, InsetOld const * inset)
        ParIterator pit = const_cast<Buffer &>(buf).par_iterator_begin();
        ParIterator end = const_cast<Buffer &>(buf).par_iterator_end();
        for ( ; pit != end; ++pit) {
-
-               ParagraphList * plist;
+               LyXText * text;
                // the second '=' below is intentional
-               for (int i = 0; (plist = inset->getParagraphs(i)); ++i)
-                       if (plist == &pit.plist())
+               for (int i = 0; (text = inset->getText(i)); ++i)
+                       if (&text->paragraphs() == &pit.plist())
                                return pit.outerPar();
 
                InsetList::iterator ii = pit->insetlist.begin();
@@ -588,10 +587,10 @@ Paragraph const & ownerPar(Buffer const & buf, InsetOld const * inset)
        ParConstIterator pit = buf.par_iterator_begin();
        ParConstIterator end = buf.par_iterator_end();
        for ( ; pit != end; ++pit) {
-               ParagraphList * plist;
+               LyXText * text;
                // the second '=' below is intentional
-               for (int i = 0; (plist = inset->getParagraphs(i)); ++i)
-                       if (plist == &pit.plist())
+               for (int i = 0; (text = inset->getText(i)); ++i)
+                       if (&text->paragraphs() == &pit.plist())
                                return *pit.pit();
 
                InsetList::const_iterator ii = pit->insetlist.begin();
index e2dbf972f83cf8461af453642f7bf3785db2979a..2b952bc4f69ec4b03cd5f1daa6cb7c6bcf96c2da 100644 (file)
@@ -314,25 +314,25 @@ int LyXText::leftMargin(ParagraphList::iterator pit, pos_type pos) const
                align = pit->params().align();
 
        // set the correct parindent
-       if (pos == 0) {
-               if ((layout->labeltype == LABEL_NO_LABEL
-                    || layout->labeltype == LABEL_TOP_ENVIRONMENT
-                    || layout->labeltype == LABEL_CENTERED_TOP_ENVIRONMENT
-                    || (layout->labeltype == LABEL_STATIC
-                        && layout->latextype == LATEX_ENVIRONMENT
-                        && !isFirstInSequence(pit, paragraphs())))
-                   && align == LYX_ALIGN_BLOCK
-                   && !pit->params().noindent()
-                       // in tabulars and ert paragraphs are never indented!
-                       && (!pit->inInset() || !pit->inInset()->owner() ||
-                               (pit->inInset()->owner()->lyxCode() != InsetOld::TABULAR_CODE &&
-                                pit->inInset()->owner()->lyxCode() != InsetOld::ERT_CODE))
-                   && (pit->layout() != tclass.defaultLayout() ||
-                       bv()->buffer()->params().paragraph_separation ==
-                       BufferParams::PARSEP_INDENT)) {
-                       x += font_metrics::signedWidth(parindent,
-                                                 tclass.defaultfont());
-               }
+       if (pos == 0
+           && (layout->labeltype == LABEL_NO_LABEL
+              || layout->labeltype == LABEL_TOP_ENVIRONMENT
+              || layout->labeltype == LABEL_CENTERED_TOP_ENVIRONMENT
+              || (layout->labeltype == LABEL_STATIC
+                  && layout->latextype == LATEX_ENVIRONMENT
+                  && !isFirstInSequence(pit, paragraphs())))
+           && align == LYX_ALIGN_BLOCK
+           && !pit->params().noindent()
+           // in tabulars and ert paragraphs are never indented!
+           && (!pit->inInset()
+               || !pit->inInset()->owner()
+               || (pit->inInset()->owner()->lyxCode() != InsetOld::TABULAR_CODE
+                   && pit->inInset()->owner()->lyxCode() != InsetOld::ERT_CODE))
+           && (pit->layout() != tclass.defaultLayout()
+               || bv()->buffer()->params().paragraph_separation ==
+                  BufferParams::PARSEP_INDENT))
+       {
+               x += font_metrics::signedWidth(parindent, tclass.defaultfont());
        }
 
        return x;
index ff3e4746cc0ca7d6db4af72b43216ce34ebbe978..38e5b8497f57e041e5e9bf7440dd1a0654e59650 100644 (file)
@@ -118,8 +118,8 @@ LyXFont LyXText::getFont(ParagraphList::iterator pit, pos_type pos) const
        // We specialize the 95% common case:
        if (!pit->getDepth()) {
                LyXFont f = pit->getFontSettings(params, pos);
-               if (pit->inInset())
-                       pit->inInset()->getDrawFont(f);
+               if (in_inset_)
+                       f.realize(font_);
                if (layout->labeltype == LABEL_MANUAL && pos < body_pos)
                        return f.realize(layout->reslabelfont);
                else
@@ -136,8 +136,8 @@ LyXFont LyXText::getFont(ParagraphList::iterator pit, pos_type pos) const
        LyXFont font = pit->getFontSettings(params, pos);
        font.realize(layoutfont);
 
-       if (pit->inInset())
-               pit->inInset()->getDrawFont(font);
+       if (in_inset_)
+               font.realize(font_);
 
        // Realize with the fonts of lesser depth.
        //font.realize(outerFont(pit, paragraphs()));