Details
-
Bug
-
Resolution: Done
-
P2: Important
-
5.15, 6.x
-
-
6ecde6265a08163d47a834cb5591fdb22461d129 (qt/qtbase/dev), fd747db75 (tqtc/lts-5.15)
Description
Symbol | Expected | Actual |
---|---|---|
XKB_KEY_mu 0x0b5, Latin 1 charset, U+00B5 MICRO SIGN |
Qt::Key_mu 0x0b5, Latin 1 |
0x07cc, no Qt::Key enum corresponds to XKB_KEY_Greek_MU, Latin/Greek, U+039C GREEK CAPITAL LETTER MU |
XKB_KEY_ydiaeresis 0x0ff, Latin 1 charset, U+00FF LATIN SMALL LETTER Y WITH DIAERESIS |
Qt::Key_ydiaeresis 0x0ff, Latin 1 charset |
0x13be, no Qt::Key enum corresponds to XKB_KEY_Ydiaeresis, Latin 9, U+0178 LATIN CAPITAL LETTER Y WITH DIAERESIS |
Usually, Qt::Key letters 1 are just upper case versions of corresponding Latin 1 letters, but that's not always the case: some Latin 1 letters 2 do not have their upper-case representation within Latin 1 charset itself 3, as seen in the table above. That letters represented in Qt::Key by their lower-case Latin1 variants instead.
SOLUTION:
We should not convert Latin 1 letter to upper-case, if it's upper-case representation doesn't fit to Latin 1 charset. It's lower-case variant should be used as Qt key instead.
Attachments
Issue Links
- relates to
-
QTBUG-89620 QKeySequence does not handle Qt::Key_mu right
- Open
-
QTBUG-117158 Unify case canonicalization in key mapping
- Reported
-
QTBUG-72361 Add LowerCase letters to Qt::Key enumerator.
- Closed