From: Abdelrazak Younes Date: Sat, 20 Jan 2007 01:15:05 +0000 (+0000) Subject: PreparePrepare for independent decoration drawing and correct a CoordCache bug: Previ... X-Git-Tag: 1.6.10~11129 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=5ed7e7a03c510a6d4057d2b933377598ab4cb60a;p=lyx.git PreparePrepare for independent decoration drawing and correct a CoordCache bug: Previously, only the math insets containing the cursor were put in the cache. I believe this was the reason for some of the weird problems with cursors in math (egg: cursor trapped in a fraction). * insetbase.C - drawMarkers(): draw the decoration in any case (but visible only in editing mode). Fill-in the CoordCache in any case. - drawMarkers2(): ditto. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16773 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/insets/insetbase.C b/src/insets/insetbase.C index 41d7de106f..29d5448f96 100644 --- a/src/insets/insetbase.C +++ b/src/insets/insetbase.C @@ -283,29 +283,31 @@ void InsetBase::metricsMarkers2(Dimension & dim, int framesize) const void InsetBase::drawMarkers(PainterInfo & pi, int x, int y) const { - if (!editing(pi.base.bv)) - return; + LColor::color pen_color = editing(pi.base.bv)? + LColor::mathframe : LColor::background; + int const t = x + width() - 1; int const d = y + descent(); - pi.pain.line(x, d - 3, x, d, LColor::mathframe); - pi.pain.line(t, d - 3, t, d, LColor::mathframe); - pi.pain.line(x, d, x + 3, d, LColor::mathframe); - pi.pain.line(t - 3, d, t, d, LColor::mathframe); + pi.pain.line(x, d - 3, x, d, pen_color); + pi.pain.line(t, d - 3, t, d, pen_color); + pi.pain.line(x, d, x + 3, d, pen_color); + pi.pain.line(t - 3, d, t, d, pen_color); setPosCache(pi, x, y); } void InsetBase::drawMarkers2(PainterInfo & pi, int x, int y) const { - if (!editing(pi.base.bv)) - return; + LColor::color pen_color = editing(pi.base.bv)? + LColor::mathframe : LColor::background; + drawMarkers(pi, x, y); int const t = x + width() - 1; int const a = y - ascent(); - pi.pain.line(x, a + 3, x, a, LColor::mathframe); - pi.pain.line(t, a + 3, t, a, LColor::mathframe); - pi.pain.line(x, a, x + 3, a, LColor::mathframe); - pi.pain.line(t - 3, a, t, a, LColor::mathframe); + pi.pain.line(x, a + 3, x, a, pen_color); + pi.pain.line(t, a + 3, t, a, pen_color); + pi.pain.line(x, a, x + 3, a, pen_color); + pi.pain.line(t - 3, a, t, a, pen_color); setPosCache(pi, x, y); }