Add missing dead key symbols
Qt was missing symbols for many dead keys defined in <X11/keysymdef.h>. These dead keys were thus ignored by the "compose" input module. This commit adds the missing dead key symbols. [ChangeLog][Linux/XCB] Added missing dead key symbols, enabling their use with the "compose" input module. Task-number: QTBUG-56452 Change-Id: Ib5c37168990c9d9fa99fdd50f63b934c793e8dc4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Gatis Paeglis <gatis.paeglis@qt.io> Reviewed-by: Matt Whitlock <qt@mattwhitlock.name>bb10
parent
bcc1eaab70
commit
1d86e5f84a
|
|
@ -848,6 +848,36 @@ public:
|
|||
Key_Dead_Belowdot = 0x01001260,
|
||||
Key_Dead_Hook = 0x01001261,
|
||||
Key_Dead_Horn = 0x01001262,
|
||||
Key_Dead_Stroke = 0x01001263,
|
||||
Key_Dead_Abovecomma = 0x01001264,
|
||||
Key_Dead_Abovereversedcomma = 0x01001265,
|
||||
Key_Dead_Doublegrave = 0x01001266,
|
||||
Key_Dead_Belowring = 0x01001267,
|
||||
Key_Dead_Belowmacron = 0x01001268,
|
||||
Key_Dead_Belowcircumflex = 0x01001269,
|
||||
Key_Dead_Belowtilde = 0x0100126a,
|
||||
Key_Dead_Belowbreve = 0x0100126b,
|
||||
Key_Dead_Belowdiaeresis = 0x0100126c,
|
||||
Key_Dead_Invertedbreve = 0x0100126d,
|
||||
Key_Dead_Belowcomma = 0x0100126e,
|
||||
Key_Dead_Currency = 0x0100126f,
|
||||
Key_Dead_a = 0x01001280,
|
||||
Key_Dead_A = 0x01001281,
|
||||
Key_Dead_e = 0x01001282,
|
||||
Key_Dead_E = 0x01001283,
|
||||
Key_Dead_i = 0x01001284,
|
||||
Key_Dead_I = 0x01001285,
|
||||
Key_Dead_o = 0x01001286,
|
||||
Key_Dead_O = 0x01001287,
|
||||
Key_Dead_u = 0x01001288,
|
||||
Key_Dead_U = 0x01001289,
|
||||
Key_Dead_Small_Schwa = 0x0100128a,
|
||||
Key_Dead_Capital_Schwa = 0x0100128b,
|
||||
Key_Dead_Greek = 0x0100128c,
|
||||
Key_Dead_Lowline = 0x01001290,
|
||||
Key_Dead_Aboveverticalline = 0x01001291,
|
||||
Key_Dead_Belowverticalline = 0x01001292,
|
||||
Key_Dead_Longsolidusoverlay = 0x01001293,
|
||||
|
||||
// multimedia/internet keys - ignored by default - see QKeyEvent c'tor
|
||||
Key_Back = 0x01000061,
|
||||
|
|
|
|||
|
|
@ -1613,6 +1613,36 @@
|
|||
\value Key_Dead_Belowdot
|
||||
\value Key_Dead_Hook
|
||||
\value Key_Dead_Horn
|
||||
\value Key_Dead_Stroke
|
||||
\value Key_Dead_Abovecomma
|
||||
\value Key_Dead_Abovereversedcomma
|
||||
\value Key_Dead_Doublegrave
|
||||
\value Key_Dead_Belowring
|
||||
\value Key_Dead_Belowmacron
|
||||
\value Key_Dead_Belowcircumflex
|
||||
\value Key_Dead_Belowtilde
|
||||
\value Key_Dead_Belowbreve
|
||||
\value Key_Dead_Belowdiaeresis
|
||||
\value Key_Dead_Invertedbreve
|
||||
\value Key_Dead_Belowcomma
|
||||
\value Key_Dead_Currency
|
||||
\value Key_Dead_a
|
||||
\value Key_Dead_A
|
||||
\value Key_Dead_e
|
||||
\value Key_Dead_E
|
||||
\value Key_Dead_i
|
||||
\value Key_Dead_I
|
||||
\value Key_Dead_o
|
||||
\value Key_Dead_O
|
||||
\value Key_Dead_u
|
||||
\value Key_Dead_U
|
||||
\value Key_Dead_Small_Schwa
|
||||
\value Key_Dead_Capital_Schwa
|
||||
\value Key_Dead_Greek
|
||||
\value Key_Dead_Lowline
|
||||
\value Key_Dead_Aboveverticalline
|
||||
\value Key_Dead_Belowverticalline
|
||||
\value Key_Dead_Longsolidusoverlay
|
||||
\value Key_Back
|
||||
\value Key_Forward
|
||||
\value Key_Stop
|
||||
|
|
|
|||
|
|
@ -286,7 +286,7 @@ int QLibInputKeyboard::keysymToQtKey(xkb_keysym_t keysym, Qt::KeyboardModifiers
|
|||
*modifiers |= Qt::KeypadModifier;
|
||||
} else if (text.length() == 1 && text.unicode()->unicode() > 0x1f
|
||||
&& text.unicode()->unicode() != 0x7f
|
||||
&& !(keysym >= XKB_KEY_dead_grave && keysym <= XKB_KEY_dead_currency)) {
|
||||
&& !(keysym >= XKB_KEY_dead_grave && keysym <= XKB_KEY_dead_longsolidusoverlay)) {
|
||||
code = text.unicode()->toUpper().unicode();
|
||||
} else {
|
||||
// any other keys
|
||||
|
|
|
|||
|
|
@ -82,7 +82,37 @@ static const int composingKeys[] = {
|
|||
Qt::Key_Dead_Semivoiced_Sound,
|
||||
Qt::Key_Dead_Belowdot,
|
||||
Qt::Key_Dead_Hook,
|
||||
Qt::Key_Dead_Horn
|
||||
Qt::Key_Dead_Horn,
|
||||
Qt::Key_Dead_Stroke,
|
||||
Qt::Key_Dead_Abovecomma,
|
||||
Qt::Key_Dead_Abovereversedcomma,
|
||||
Qt::Key_Dead_Doublegrave,
|
||||
Qt::Key_Dead_Belowring,
|
||||
Qt::Key_Dead_Belowmacron,
|
||||
Qt::Key_Dead_Belowcircumflex,
|
||||
Qt::Key_Dead_Belowtilde,
|
||||
Qt::Key_Dead_Belowbreve,
|
||||
Qt::Key_Dead_Belowdiaeresis,
|
||||
Qt::Key_Dead_Invertedbreve,
|
||||
Qt::Key_Dead_Belowcomma,
|
||||
Qt::Key_Dead_Currency,
|
||||
Qt::Key_Dead_a,
|
||||
Qt::Key_Dead_A,
|
||||
Qt::Key_Dead_e,
|
||||
Qt::Key_Dead_E,
|
||||
Qt::Key_Dead_i,
|
||||
Qt::Key_Dead_I,
|
||||
Qt::Key_Dead_o,
|
||||
Qt::Key_Dead_O,
|
||||
Qt::Key_Dead_u,
|
||||
Qt::Key_Dead_U,
|
||||
Qt::Key_Dead_Small_Schwa,
|
||||
Qt::Key_Dead_Capital_Schwa,
|
||||
Qt::Key_Dead_Greek,
|
||||
Qt::Key_Dead_Lowline,
|
||||
Qt::Key_Dead_Aboveverticalline,
|
||||
Qt::Key_Dead_Belowverticalline,
|
||||
Qt::Key_Dead_Longsolidusoverlay
|
||||
};
|
||||
|
||||
QComposeInputContext::QComposeInputContext()
|
||||
|
|
|
|||
|
|
@ -156,6 +156,36 @@ static const uint32_t KeyTable[] = {
|
|||
XKB_KEY_dead_belowdot, Qt::Key_Dead_Belowdot,
|
||||
XKB_KEY_dead_hook, Qt::Key_Dead_Hook,
|
||||
XKB_KEY_dead_horn, Qt::Key_Dead_Horn,
|
||||
XKB_KEY_dead_stroke, Qt::Key_Dead_Stroke,
|
||||
XKB_KEY_dead_abovecomma, Qt::Key_Dead_Abovecomma,
|
||||
XKB_KEY_dead_abovereversedcomma, Qt::Key_Dead_Abovereversedcomma,
|
||||
XKB_KEY_dead_doublegrave, Qt::Key_Dead_Doublegrave,
|
||||
XKB_KEY_dead_belowring, Qt::Key_Dead_Belowring,
|
||||
XKB_KEY_dead_belowmacron, Qt::Key_Dead_Belowmacron,
|
||||
XKB_KEY_dead_belowcircumflex, Qt::Key_Dead_Belowcircumflex,
|
||||
XKB_KEY_dead_belowtilde, Qt::Key_Dead_Belowtilde,
|
||||
XKB_KEY_dead_belowbreve, Qt::Key_Dead_Belowbreve,
|
||||
XKB_KEY_dead_belowdiaeresis, Qt::Key_Dead_Belowdiaeresis,
|
||||
XKB_KEY_dead_invertedbreve, Qt::Key_Dead_Invertedbreve,
|
||||
XKB_KEY_dead_belowcomma, Qt::Key_Dead_Belowcomma,
|
||||
XKB_KEY_dead_currency, Qt::Key_Dead_Currency,
|
||||
XKB_KEY_dead_a, Qt::Key_Dead_a,
|
||||
XKB_KEY_dead_A, Qt::Key_Dead_A,
|
||||
XKB_KEY_dead_e, Qt::Key_Dead_e,
|
||||
XKB_KEY_dead_E, Qt::Key_Dead_E,
|
||||
XKB_KEY_dead_i, Qt::Key_Dead_i,
|
||||
XKB_KEY_dead_I, Qt::Key_Dead_I,
|
||||
XKB_KEY_dead_o, Qt::Key_Dead_o,
|
||||
XKB_KEY_dead_O, Qt::Key_Dead_O,
|
||||
XKB_KEY_dead_u, Qt::Key_Dead_u,
|
||||
XKB_KEY_dead_U, Qt::Key_Dead_U,
|
||||
XKB_KEY_dead_small_schwa, Qt::Key_Dead_Small_Schwa,
|
||||
XKB_KEY_dead_capital_schwa, Qt::Key_Dead_Capital_Schwa,
|
||||
XKB_KEY_dead_greek, Qt::Key_Dead_Greek,
|
||||
XKB_KEY_dead_lowline, Qt::Key_Dead_Lowline,
|
||||
XKB_KEY_dead_aboveverticalline, Qt::Key_Dead_Aboveverticalline,
|
||||
XKB_KEY_dead_belowverticalline, Qt::Key_Dead_Belowverticalline,
|
||||
XKB_KEY_dead_longsolidusoverlay, Qt::Key_Dead_Longsolidusoverlay,
|
||||
|
||||
XKB_KEY_Mode_switch, Qt::Key_Mode_switch,
|
||||
XKB_KEY_script_switch, Qt::Key_Mode_switch,
|
||||
|
|
|
|||
|
|
@ -69,14 +69,75 @@
|
|||
#define XK_ISO_Left_Tab 0xFE20
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_hook
|
||||
#define XK_dead_hook 0xFE61
|
||||
#ifndef XK_dead_a
|
||||
#define XK_dead_a 0xFE80
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_horn
|
||||
#define XK_dead_horn 0xFE62
|
||||
#ifndef XK_dead_A
|
||||
#define XK_dead_A 0xFE81
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_e
|
||||
#define XK_dead_e 0xFE82
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_E
|
||||
#define XK_dead_E 0xFE83
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_i
|
||||
#define XK_dead_i 0xFE84
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_I
|
||||
#define XK_dead_I 0xFE85
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_o
|
||||
#define XK_dead_o 0xFE86
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_O
|
||||
#define XK_dead_O 0xFE87
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_u
|
||||
#define XK_dead_u 0xFE88
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_U
|
||||
#define XK_dead_U 0xFE89
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_small_schwa
|
||||
#define XK_dead_small_schwa 0xFE8A
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_capital_schwa
|
||||
#define XK_dead_capital_schwa 0xFE8B
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_greek
|
||||
#define XK_dead_greek 0xFE8C
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_lowline
|
||||
#define XK_dead_lowline 0xFE90
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_aboveverticalline
|
||||
#define XK_dead_aboveverticalline 0xFE91
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_belowverticalline
|
||||
#define XK_dead_belowverticalline 0xFE92
|
||||
#endif
|
||||
|
||||
#ifndef XK_dead_longsolidusoverlay
|
||||
#define XK_dead_longsolidusoverlay 0xFE93
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef XK_Codeinput
|
||||
#define XK_Codeinput 0xFF37
|
||||
#endif
|
||||
|
|
@ -435,6 +496,36 @@ static const unsigned int KeyTbl[] = {
|
|||
XK_dead_belowdot, Qt::Key_Dead_Belowdot,
|
||||
XK_dead_hook, Qt::Key_Dead_Hook,
|
||||
XK_dead_horn, Qt::Key_Dead_Horn,
|
||||
XK_dead_stroke, Qt::Key_Dead_Stroke,
|
||||
XK_dead_abovecomma, Qt::Key_Dead_Abovecomma,
|
||||
XK_dead_abovereversedcomma, Qt::Key_Dead_Abovereversedcomma,
|
||||
XK_dead_doublegrave, Qt::Key_Dead_Doublegrave,
|
||||
XK_dead_belowring, Qt::Key_Dead_Belowring,
|
||||
XK_dead_belowmacron, Qt::Key_Dead_Belowmacron,
|
||||
XK_dead_belowcircumflex, Qt::Key_Dead_Belowcircumflex,
|
||||
XK_dead_belowtilde, Qt::Key_Dead_Belowtilde,
|
||||
XK_dead_belowbreve, Qt::Key_Dead_Belowbreve,
|
||||
XK_dead_belowdiaeresis, Qt::Key_Dead_Belowdiaeresis,
|
||||
XK_dead_invertedbreve, Qt::Key_Dead_Invertedbreve,
|
||||
XK_dead_belowcomma, Qt::Key_Dead_Belowcomma,
|
||||
XK_dead_currency, Qt::Key_Dead_Currency,
|
||||
XK_dead_a, Qt::Key_Dead_a,
|
||||
XK_dead_A, Qt::Key_Dead_A,
|
||||
XK_dead_e, Qt::Key_Dead_e,
|
||||
XK_dead_E, Qt::Key_Dead_E,
|
||||
XK_dead_i, Qt::Key_Dead_i,
|
||||
XK_dead_I, Qt::Key_Dead_I,
|
||||
XK_dead_o, Qt::Key_Dead_o,
|
||||
XK_dead_O, Qt::Key_Dead_O,
|
||||
XK_dead_u, Qt::Key_Dead_u,
|
||||
XK_dead_U, Qt::Key_Dead_U,
|
||||
XK_dead_small_schwa, Qt::Key_Dead_Small_Schwa,
|
||||
XK_dead_capital_schwa, Qt::Key_Dead_Capital_Schwa,
|
||||
XK_dead_greek, Qt::Key_Dead_Greek,
|
||||
XK_dead_lowline, Qt::Key_Dead_Lowline,
|
||||
XK_dead_aboveverticalline, Qt::Key_Dead_Aboveverticalline,
|
||||
XK_dead_belowverticalline, Qt::Key_Dead_Belowverticalline,
|
||||
XK_dead_longsolidusoverlay, Qt::Key_Dead_Longsolidusoverlay,
|
||||
|
||||
// Special keys from X.org - This include multimedia keys,
|
||||
// wireless/bluetooth/uwb keys, special launcher keys, etc.
|
||||
|
|
@ -1433,7 +1524,7 @@ int QXcbKeyboard::keysymToQtKey(xcb_keysym_t keysym, Qt::KeyboardModifiers &modi
|
|||
modifiers |= Qt::KeypadModifier;
|
||||
} else if (text.length() == 1 && text.unicode()->unicode() > 0x1f
|
||||
&& text.unicode()->unicode() != 0x7f
|
||||
&& !(keysym >= XK_dead_grave && keysym <= XK_dead_currency)) {
|
||||
&& !(keysym >= XK_dead_grave && keysym <= XK_dead_longsolidusoverlay)) {
|
||||
code = text.unicode()->toUpper().unicode();
|
||||
} else {
|
||||
// any other keys
|
||||
|
|
|
|||
Loading…
Reference in New Issue