]> git.lyx.org Git - lyx.git/blobdiff - src/Text2.cpp
lyx2lyx/lyx_1_6.py: fixes for r26882 as promised
[lyx.git] / src / Text2.cpp
index 1254fbf99ce9eafcb84961dbbac5558ae3d6c7c2..de328e3e2a4a32537f17a283aa064c69e34eded3 100644 (file)
@@ -74,6 +74,7 @@ bool Text::isMainText(Buffer const & buffer) const
 }
 
 
+// Note that this is supposed to return a fully realized font.
 FontInfo Text::layoutFont(Buffer const & buffer, pit_type const pit) const
 {
        Layout const & layout = pars_[pit].layout();
@@ -83,10 +84,18 @@ FontInfo Text::layoutFont(Buffer const & buffer, pit_type const pit) const
                // In case the default family has been customized
                if (layout.font.family() == INHERIT_FAMILY)
                        lf.setFamily(buffer.params().getFont().fontInfo().family());
-               InsetCollapsable const * icp = pars_[pit].inInset()->asInsetCollapsable();
-               if (icp)
-                       lf.update(icp->getLayout().font(), false);
-               return lf;
+               // FIXME
+               // It ought to be possible here just to use Inset::getLayout() and skip
+               // the asInsetCollapsable() bit. Unfortunatley, that doesn't work right
+               // now, because Inset::getLayout() will return a default-constructed
+               // InsetLayout, and that e.g. sets the foreground color to red. So we
+               // need to do some work to make that possible.
+               InsetCollapsable const * icp = pars_[pit].inInset().asInsetCollapsable();
+               if (!icp)
+                       return lf;
+               FontInfo icf = icp->getLayout().font();
+               icf.realize(lf);
+               return icf;
        }
 
        FontInfo font = layout.font;
@@ -98,6 +107,7 @@ FontInfo Text::layoutFont(Buffer const & buffer, pit_type const pit) const
 }
 
 
+// Note that this is supposed to return a fully realized font.
 FontInfo Text::labelFont(Buffer const & buffer, Paragraph const & par) const
 {
        Layout const & layout = par.layout();
@@ -107,10 +117,13 @@ FontInfo Text::labelFont(Buffer const & buffer, Paragraph const & par) const
                // In case the default family has been customized
                if (layout.labelfont.family() == INHERIT_FAMILY)
                        lf.setFamily(buffer.params().getFont().fontInfo().family());
-               InsetCollapsable const * icp = par.inInset()->asInsetCollapsable();
-               if (icp)
-                       lf.update(icp->getLayout().labelfont(), false);
-               return lf;
+               // FIXME As above....
+               InsetCollapsable const * icp = par.inInset().asInsetCollapsable();
+               if (!icp)
+                       return lf;
+               FontInfo icf = icp->getLayout().labelfont();
+               icf.realize(lf);
+               return icf;
        }
 
        FontInfo font = layout.labelfont;
@@ -184,7 +197,7 @@ void Text::setInsetFont(BufferView const & bv, pit_type pit,
 // return past-the-last paragraph influenced by a layout change on pit
 pit_type Text::undoSpan(pit_type pit)
 {
-       pit_type end = paragraphs().size();
+       pit_type const end = paragraphs().size();
        pit_type nextpit = pit + 1;
        if (nextpit == end)
                return nextpit;