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