]> git.lyx.org Git - features.git/commitdiff
- re-enable editing of macro name during input
authorAndré Pönitz <poenitz@gmx.net>
Mon, 19 Aug 2002 14:39:35 +0000 (14:39 +0000)
committerAndré Pönitz <poenitz@gmx.net>
Mon, 19 Aug 2002 14:39:35 +0000 (14:39 +0000)
- fix drawing glitch (font sizes in macro definitions)

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@5024 a592a061-630c-0410-9148-cb99ea01b6c8

src/mathed/formulamacro.C
src/mathed/math_cursor.C

index 43097036632da2ea5f7fe255fc1df1e53f254fe7..7c759d3432117aec80b201b0790aca68cec30f99 100644 (file)
@@ -170,29 +170,31 @@ Inset::Code InsetFormulaMacro::lyxCode() const
 void InsetFormulaMacro::draw(BufferView * bv, LyXFont const & f,
                             int y, float & xx, bool /*cleared*/) const
 {
-       MathPainterInfo pain = MathPainterInfo(bv->painter());
-       LyXFont font(f);
-
        // label
+       LyXFont font(f);
        font.setColor(LColor::math);
 
+       MathPainterInfo pi = MathPainterInfo(bv->painter());
+       pi.base.style = LM_ST_TEXT;
+       pi.base.font  = font;
+
        int const x = int(xx);
        int const a = y - ascent(bv, font) + 1;
        int const w = width(bv, font) - 2;
        int const h = ascent(bv, font) + descent(bv, font) - 2;
 
        // LColor::mathbg used to be "AntiqueWhite" but is "linen" now, too
-       pain.pain.fillRectangle(x, a, w, h, LColor::mathmacrobg);
-       pain.pain.rectangle(x, a, w, h, LColor::mathframe);
+       pi.pain.fillRectangle(x, a, w, h, LColor::mathmacrobg);
+       pi.pain.rectangle(x, a, w, h, LColor::mathframe);
 
        if (mathcursor &&
                        const_cast<InsetFormulaBase const *>(mathcursor->formula()) == this)
-               mathcursor->drawSelection(pain);
+               mathcursor->drawSelection(pi);
 
-       pain.pain.text(x + 2, y, prefix(), font);
+       pi.pain.text(x + 2, y, prefix(), font);
 
        // formula
-       par()->draw(pain, x + font_metrics::width(prefix(), f) + 5, y);
+       par()->draw(pi, x + font_metrics::width(prefix(), f) + 5, y);
        xx += w + 2;
        xo_ = x;
        yo_ = y;
index 0537a8128c5dd0a55d3b5de121859254c50b878e..df7444f328c9ce9072bc6b2df674698ccfe4239b 100644 (file)
@@ -432,6 +432,14 @@ void MathCursor::backspace()
                return;
        }
 
+       if (inMacroMode()) {
+               MathUnknownInset * p = activeMacro();
+               if (p->name().size() > 1) {
+                       p->setName(p->name().substr(0, p->name().size() - 1));
+                       return;
+               }
+       }
+
 /*
        if (prevAtom()->asScriptInset()) {
                // simply enter nucleus