]> git.lyx.org Git - features.git/commitdiff
The LaTeX control space "\ " is a special char, too. In mathed, it should
authorEnrico Forestieri <forenr@lyx.org>
Sun, 26 Oct 2008 18:32:25 +0000 (18:32 +0000)
committerEnrico Forestieri <forenr@lyx.org>
Sun, 26 Oct 2008 18:32:25 +0000 (18:32 +0000)
be represented on screen as a visible space rather than as an empty macro.

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

src/mathed/InsetMathNest.cpp
src/mathed/InsetMathSpecialChar.cpp
src/mathed/MathFactory.cpp

index ffde2ad45fba967544306d14f501f5548c13237b..63e368cb806172a3eb24be0e38069b9535a64814 100644 (file)
@@ -1593,7 +1593,7 @@ bool InsetMathNest::interpretChar(Cursor & cur, char_type c)
        }
 
        if (c == '{' || c == '}' || c == '&' || c == '$' || c == '#' ||
-           c == '%' || c == '_') {
+           c == '%' || c == '_' || c == ' ') {
                cur.niceInsert(createInsetMath(docstring(1, c)));
                return true;
        }
index 828278811065cea5c34bd935164630b9bdb0b0ca..926dde6e6901db807cf9d25e91250aed0a8f2bf3 100644 (file)
@@ -21,6 +21,7 @@
 #include "TextPainter.h"
 
 #include "frontends/FontMetrics.h"
+#include "frontends/Painter.h"
 
 #include "support/lassert.h"
 
@@ -54,7 +55,11 @@ Inset * InsetMathSpecialChar::clone() const
 
 void InsetMathSpecialChar::metrics(MetricsInfo & mi, Dimension & dim) const
 {
-       if (mi.base.fontname == "mathnormal") {
+       if (char_ == ' ') {
+               dim.asc = 4;
+               dim.des = 0;
+               dim.wid = 10;
+       } else if (mi.base.fontname == "mathnormal") {
                ShapeChanger dummy(mi.base.font, UP_SHAPE);
                dim = theFontMetrics(mi.base.font).dimension(char_);
        } else {
@@ -67,7 +72,18 @@ void InsetMathSpecialChar::metrics(MetricsInfo & mi, Dimension & dim) const
 
 void InsetMathSpecialChar::draw(PainterInfo & pi, int x, int y) const
 {
-       if (pi.base.fontname == "mathnormal") {
+       if (char_ == ' ') {
+               int xp[4];
+               int yp[4];
+               int w = 10;
+
+               xp[0] = ++x;        yp[0] = y - 3;
+               xp[1] = x;          yp[1] = y;
+               xp[2] = x + w - 2;  yp[2] = y;
+               xp[3] = x + w - 2;  yp[3] = y - 3;
+
+               pi.pain.lines(xp, yp, 4, Color_special);
+       } else if (pi.base.fontname == "mathnormal") {
                ShapeChanger dummy(pi.base.font, UP_SHAPE);
                pi.draw(x, y, char_);
        } else {
index 50e3fb4cee2622731c2625cc664674611e669ced..4c32281d83375238d12d1ead8e8923cbd8cc7ad8 100644 (file)
@@ -227,7 +227,7 @@ bool isSpecialChar(docstring const & name)
 
        char_type const c = name.at(0);
        return  c == '{' || c == '}' || c == '&' || c == '$' ||
-               c == '#' || c == '%' || c == '_';
+               c == '#' || c == '%' || c == '_' || c == ' ';
 }