[QScintilla] some Lithuanian characters cannot be input by keyboard

Yuya Nishihara yuya at tcha.org
Sat Feb 1 05:16:49 GMT 2014


Hi,

I received the following bug report from a TortoiseHg user.

> Commit message input does not permit to input a "į" Lithuanian character,
> in TortoiseHg v2.10.1 it was treated as backspace...

https://bitbucket.org/tortoisehg/thg/issue/3573/

It is probably because the key code for "į" conflicts with SCK_LEFT or
SCK_RIGHT.  When the "į" key, which is "5" in US keyboard, is pressed,
event.key() returns 302 on Qt 4.8.4 and 303 on Qt 4.8.5 [1].

I guess the problem can be avoided by the following change, but there might
be a side effect.

diff --git a/Qt4Qt5/qsciscintillabase.cpp b/Qt4Qt5/qsciscintillabase.cpp
--- a/Qt4Qt5/qsciscintillabase.cpp
+++ b/Qt4Qt5/qsciscintillabase.cpp
@@ -467,7 +467,11 @@ void QsciScintillaBase::keyPressEvent(QK
         break;
 
     default:
-        key = e->key();
+        // qscicommand.cpp:convert() ignores unknown non-ascii keys
+        if (key > 0x7f)
+            key = 0;
+        else:
+            key = e->key();
     }
 
     if (key)


[1]: this difference would probably come from the following commit
     https://qt.gitorious.org/qt/qt/commit/68331c5

Regards,


More information about the QScintilla mailing list