[LyX/2.3.x] Disable direct insertion of multiple spaces in mathed text

Enrico Forestieri forenr at lyx.org
Fri Feb 5 21:11:50 UTC 2021


commit 7dc7315e5fd8e7be971245b0e19d88bdc8cd23ad
Author: Enrico Forestieri <forenr at lyx.org>
Date:   Thu Feb 4 21:20:45 2021 +0100

    Disable direct insertion of multiple spaces in mathed text
    
    Fixes #1311
    
    (cherry picked from commit 8202e4e571b90b3b87918437d6346bbf1cbfc6aa)
---
 src/mathed/InsetMathNest.cpp |    8 +++++++-
 status.23x                   |    2 ++
 2 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/src/mathed/InsetMathNest.cpp b/src/mathed/InsetMathNest.cpp
index d581e74..369bdb8 100644
--- a/src/mathed/InsetMathNest.cpp
+++ b/src/mathed/InsetMathNest.cpp
@@ -1766,7 +1766,13 @@ bool InsetMathNest::interpretChar(Cursor & cur, char_type const c)
 			// but suppress direct insertion of two spaces in a row
 			// the still allows typing  '<space>a<space>' and deleting the 'a', but
 			// it is better than nothing...
-			if (cur.pos() == 0 || cur.prevAtom()->getChar() != ' ') {
+			pos_type const pos = cur.pos();
+			pos_type const lastpos = cur.lastpos();
+			if ((pos == 0 && lastpos == 0)
+			    || (pos == 0 && cur.nextAtom()->getChar() != ' ')
+			    || (pos == lastpos && cur.prevAtom()->getChar() != ' ')
+			    || (pos > 0 && cur.prevAtom()->getChar() != ' '
+					&& cur.nextAtom()->getChar() != ' ')) {
 				cur.insert(c);
 				// FIXME: we have to enable full redraw here because of the
 				// visual box corners that define the inset. If we know for
diff --git a/status.23x b/status.23x
index c38aaec..06850c5 100644
--- a/status.23x
+++ b/status.23x
@@ -76,6 +76,8 @@ What's new
 
 - Fix unwanted scrolling of window when using "copy". (bug 11225).
 
+- Disable direct insertion of multiple spaces in mathed text (bug 1311).
+
 
 
 * INTERNALS


More information about the lyx-cvs mailing list