]> git.lyx.org Git - features.git/blobdiff - src/insets/InsetCollapsible.cpp
XHTML/DocBook: merge code duplicates for vertical alignment.
[features.git] / src / insets / InsetCollapsible.cpp
index f179afe72f54bd5f2a57fc5ff44c9ac7083d31e6..84bb314f3c667e619149d23e6c2f63ab68faa67f 100644 (file)
@@ -187,9 +187,12 @@ Dimension InsetCollapsible::dimensionCollapsed(BufferView const & bv) const
 {
        Dimension dim;
        FontInfo labelfont(getLabelfont());
+       int const offset =
+               (geometry(bv) != LeftButton && geometry(bv) != TopButton)
+               ? Inset::textOffset(&bv) : 0;
        labelfont.realize(sane_font);
        theFontMetrics(labelfont).buttonText(
-               buttonLabel(bv), Inset::textOffset(&bv), dim.wid, dim.asc, dim.des);
+               buttonLabel(bv), offset, dim.wid, dim.asc, dim.des);
        return dim;
 }
 
@@ -198,10 +201,6 @@ void InsetCollapsible::metrics(MetricsInfo & mi, Dimension & dim) const
 {
        view_[mi.base.bv].auto_open_ = mi.base.bv->cursor().isInside(this);
 
-       FontInfo tmpfont = mi.base.font;
-       mi.base.font = getFont();
-       mi.base.font.realize(tmpfont);
-
        BufferView const & bv = *mi.base.bv;
 
        switch (geometry(bv)) {
@@ -223,6 +222,7 @@ void InsetCollapsible::metrics(MetricsInfo & mi, Dimension & dim) const
                int d = 0;
                theFontMetrics(font).rectText(buttonLabel(bv), w, a, d);
                dim.des += a + d;
+               dim.wid = max(dim.wid, w);
                break;
                }
        case TopButton:
@@ -250,8 +250,6 @@ void InsetCollapsible::metrics(MetricsInfo & mi, Dimension & dim) const
                }
                break;
        }
-
-       mi.base.font = tmpfont;
 }
 
 
@@ -724,18 +722,6 @@ InsetDecoration InsetCollapsible::decoration() const
 }
 
 
-FontInfo InsetCollapsible::getFont() const
-{
-       return getLayout().font();
-}
-
-
-FontInfo InsetCollapsible::getLabelfont() const
-{
-       return getLayout().labelfont();
-}
-
-
 string InsetCollapsible::contextMenu(BufferView const & bv, int x,
        int y) const
 {