Only show the bidi cursor mark if we actually have bidirectional text
Don't show the mark simply because we have unicode code points larger than 0x590. Task-number: QTBUG-69665 Change-Id: I9af97383f3bcd52277a5288e7ad06ec240c7e51c Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>bb10
parent
70ba75519d
commit
1702ae24b3
|
|
@ -1037,19 +1037,31 @@ struct QBidiAlgorithm {
|
|||
}
|
||||
}
|
||||
|
||||
bool process()
|
||||
bool checkForBidi() const
|
||||
{
|
||||
memset(analysis, 0, length * sizeof(QScriptAnalysis));
|
||||
|
||||
bool hasBidi = (baseLevel != 0);
|
||||
if (!hasBidi) {
|
||||
for (int i = 0; i < length; ++i) {
|
||||
if (text[i].unicode() >= 0x590) {
|
||||
hasBidi = true;
|
||||
if (baseLevel != 0)
|
||||
return true;
|
||||
for (int i = 0; i < length; ++i) {
|
||||
if (text[i].unicode() >= 0x590) {
|
||||
switch (text[i].direction()) {
|
||||
case QChar::DirR: case QChar::DirAN:
|
||||
case QChar::DirLRE: case QChar::DirLRO: case QChar::DirAL:
|
||||
case QChar::DirRLE: case QChar::DirRLO: case QChar::DirPDF:
|
||||
case QChar::DirLRI: case QChar::DirRLI: case QChar::DirFSI: case QChar::DirPDI:
|
||||
return true;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool process()
|
||||
{
|
||||
memset(analysis, 0, length * sizeof(QScriptAnalysis));
|
||||
|
||||
bool hasBidi = checkForBidi();
|
||||
|
||||
if (!hasBidi)
|
||||
return false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue