mirror of
https://git.lyx.org/repos/lyx.git
synced 2025-01-11 11:08:41 +00:00
Use Common Number separator instead of European to detect numbers
This is a fixup to commit611df441
. It seems that the wrong unicode property was selected. It could be that both classes should be used. Fixes bug #11900. (cherry picked from commitf758894c2f
)
This commit is contained in:
parent
27d824aeb8
commit
4804f63740
@ -970,11 +970,11 @@ void Text::insertChar(Cursor & cur, char_type c)
|
||||
static docstring const number_operators = from_ascii("+-/*");
|
||||
static docstring const number_unary_operators = from_ascii("+-");
|
||||
|
||||
// European Number Separators: comma, dot etc.
|
||||
// Common Number Separators: comma, dot etc.
|
||||
// European Number Terminators: percent, permille, degree, euro etc.
|
||||
if (cur.current_font.fontInfo().number() == FONT_ON) {
|
||||
if (!isDigitASCII(c) && !contains(number_operators, c) &&
|
||||
!(isEuropeanNumberSeparator(c) &&
|
||||
!(isCommonNumberSeparator(c) &&
|
||||
cur.pos() != 0 &&
|
||||
cur.pos() != cur.lastpos() &&
|
||||
tm.displayFont(pit, cur.pos()).fontInfo().number() == FONT_ON &&
|
||||
@ -999,7 +999,7 @@ void Text::insertChar(Cursor & cur, char_type c)
|
||||
) {
|
||||
setCharFont(pit, cur.pos() - 1, cur.current_font,
|
||||
tm.font_);
|
||||
} else if (isEuropeanNumberSeparator(c)
|
||||
} else if (isCommonNumberSeparator(c)
|
||||
&& cur.pos() >= 2
|
||||
&& tm.displayFont(pit, cur.pos() - 2).fontInfo().number() == FONT_ON) {
|
||||
setCharFont(pit, cur.pos() - 1, cur.current_font,
|
||||
|
@ -164,13 +164,13 @@ bool isNumber(char_type c)
|
||||
}
|
||||
|
||||
|
||||
bool isEuropeanNumberSeparator(char_type c)
|
||||
bool isCommonNumberSeparator(char_type c)
|
||||
{
|
||||
if (!is_utf16(c))
|
||||
// assume that no non-utf16 character is a numeral
|
||||
// c outside the UCS4 range is catched as well
|
||||
return false;
|
||||
return ucs4_to_qchar(c).direction() == QChar::DirES;
|
||||
return ucs4_to_qchar(c).direction() == QChar::DirCS;
|
||||
}
|
||||
|
||||
|
||||
|
@ -45,8 +45,8 @@ bool isSpace(char_type c);
|
||||
bool isNumber(char_type c);
|
||||
|
||||
/// return true if a unicode char has the direction attribute
|
||||
/// European Number Separator [ES]
|
||||
bool isEuropeanNumberSeparator(char_type c);
|
||||
/// Common Number Separator [CS]
|
||||
bool isCommonNumberSeparator(char_type c);
|
||||
|
||||
/// return true if a unicode char has the direction attribute
|
||||
/// European Number Terminator [ET]
|
||||
|
@ -66,6 +66,8 @@ What's new
|
||||
|
||||
- Fix language when pasting multiple cell outside table (bug 11898).
|
||||
|
||||
- Fix input of decimal numbers in RtL context (bug 11900).
|
||||
|
||||
|
||||
* INTERNALS
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user