commit 1c956cdc1696139e417936b668c9790f627e1ce1
Author: Jean-Marc Lasgouttes <[email protected]>
Date:   Sun Jul 12 15:37:58 2020 +0200

    Improve drawing of macro template frame
    
    Use Inset::xxxOffset as offsets and draw the frame in the middle of
    the empty space.
    
    Fixes bug #9657.
---
 src/mathed/InsetMathMacroTemplate.cpp |   18 ++++++++++--------
 1 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/src/mathed/InsetMathMacroTemplate.cpp 
b/src/mathed/InsetMathMacroTemplate.cpp
index 62561b6..6c10969 100644
--- a/src/mathed/InsetMathMacroTemplate.cpp
+++ b/src/mathed/InsetMathMacroTemplate.cpp
@@ -574,9 +574,9 @@ void InsetMathMacroTemplate::metrics(MetricsInfo & mi, 
Dimension & dim) const
        if (macro)
                macro->unlock();
 
-       dim.wid += 6;
-       dim.des += 2;
-       dim.asc += 2;
+       dim.wid += leftOffset(mi.base.bv) + rightOffset(mi.base.bv);;
+       dim.des += bottomOffset(mi.base.bv);
+       dim.asc += topOffset(mi.base.bv);
 }
 
 
@@ -590,17 +590,19 @@ void InsetMathMacroTemplate::draw(PainterInfo & pi, int 
x, int y) const
        Dimension const dim = dimension(*pi.base.bv);
 
        // draw outer frame
-       int const a = y - dim.asc + 1;
-       int const w = dim.wid - 2;
-       int const h = dim.height() - 2;
-       pi.pain.rectangle(x + 1, a, w, h, Color_mathframe);
+       int const hoffset = leftOffset(pi.base.bv) + rightOffset(pi.base.bv);
+       int const voffset = topOffset(pi.base.bv) + bottomOffset(pi.base.bv);
+       int const a = y - dim.asc + topOffset(pi.base.bv) / 2;
+       int const w = dim.wid - (hoffset - hoffset / 2);
+       int const h = dim.height() - (voffset - voffset / 2);
+       pi.pain.rectangle(x + leftOffset(pi.base.bv) / 2, a, w, h, 
Color_mathframe);
 
        // just to be sure: set some dummy values for coord cache
        for (idx_type i = 0; i < nargs(); ++i)
                cell(i).setXY(*pi.base.bv, x, y);
 
        // draw contents
-       look_.draw(pi, x + 3, y);
+       look_.draw(pi, x + leftOffset(pi.base.bv), y);
 }
 
 
-- 
lyx-cvs mailing list
[email protected]
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to