On Thu, Dec 01, 2005 at 06:03:42PM +0200, Martin Vermeer wrote:
> On Thu, 2005-12-01 at 16:51 +0100, Jean-Marc Lasgouttes wrote:
> > >>>>> "Martin" == Martin Vermeer <[EMAIL PROTECTED]> writes:
> > 
> > Martin> Which code is doing this?
> > 
> > I suspect the font is a completely instantiated one, instead of being
> > full of INHERIT entries. We are probably doing too much resolving...
> 
> Yes, in makeFontEntriesLayoutSpecific.

Attached my fix. Reduces line count for a change.

- Martin

Index: lyxtext.h
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/lyxtext.h,v
retrieving revision 1.330
diff -u -p -r1.330 lyxtext.h
--- lyxtext.h   28 Nov 2005 11:52:01 -0000      1.330
+++ lyxtext.h   1 Dec 2005 21:24:45 -0000
@@ -363,7 +363,7 @@ private:
        pit_type undoSpan(pit_type pit);
 
        /// used in setlayout
-       void makeFontEntriesLayoutSpecific(BufferParams const &, Paragraph & 
par);
+       void reduceFontEntries(BufferParams const &, Paragraph & par);
 
        /// Calculate and set the height of the row
        void setHeightOfRow(pit_type, Row & row);
Index: text2.C
===================================================================
RCS file: /usr/local/lyx/cvsroot/lyx-devel/src/text2.C,v
retrieving revision 1.635
diff -u -p -r1.635 text2.C
--- text2.C     28 Nov 2005 11:52:02 -0000      1.635
+++ text2.C     1 Dec 2005 21:24:46 -0000
@@ -279,21 +286,12 @@ void LyXText::setCharFont(pit_type pit, 
 
 // used in setLayout
 // Asger is not sure we want to do this...
-void LyXText::makeFontEntriesLayoutSpecific(BufferParams const & params,
-                                           Paragraph & par)
+void LyXText::reduceFontEntries(BufferParams const & params, Paragraph & par)
 {
-       LyXLayout_ptr const & layout = par.layout();
        pos_type const psize = par.size();
-
-       LyXFont layoutfont;
        for (pos_type pos = 0; pos < psize; ++pos) {
-               if (pos < par.beginOfBody())
-                       layoutfont = layout->labelfont;
-               else
-                       layoutfont = layout->font;
-
                LyXFont tmpfont = par.getFontSettings(params, pos);
-               tmpfont.reduce(layoutfont);
+               tmpfont.reduce(defaultfont_);
                par.setFont(pos, tmpfont);
        }
 }
@@ -327,7 +325,7 @@ void LyXText::setLayout(pit_type start, 
 
        for (pit_type pit = start; pit != end; ++pit) {
                pars_[pit].applyLayout(lyxlayout);
-               makeFontEntriesLayoutSpecific(bufparams, pars_[pit]);
+               reduceFontEntries(bufparams, pars_[pit]);
                if (lyxlayout->margintype == MARGIN_MANUAL)
                        
pars_[pit].setLabelWidthString(lyxlayout->labelstring());
        }

Attachment: pgpD2oQBF53Rg.pgp
Description: PGP signature

Reply via email to