#include "qkeymapper_p.h"
#include "qdebug.h"
#include "qtextcodec.h"
#include "qwidget.h"
#include "qapplication_p.h"
#include "qevent_p.h"
#include "qt_x11_p.h"
#include <X11/XKBlib.h>
#include <X11/keysymdef.h>
#include <ctype.h>
#include "qkeymapper_x11_p.cpp"
Include dependency graph for qkeymapper_x11.cpp:

Go to the source code of this file.
Classes | |
| struct | qt_auto_repeat_data |
Defines | |
| #define | XK_MISCELLANY |
| #define | XK_LATIN1 |
| #define | XK_KOREAN |
| #define | XK_XKB_KEYS |
| #define | SETMASK(sym, mask) |
| #define | XK_ISO_Left_Tab 0xFE20 |
| #define | XK_dead_hook 0xFE61 |
| #define | XK_dead_horn 0xFE62 |
| #define | XK_Codeinput 0xFF37 |
| #define | XK_Kanji_Bangou 0xFF37 |
| #define | XK_KP_Home 0xFF95 |
| #define | XK_KP_Left 0xFF96 |
| #define | XK_KP_Up 0xFF97 |
| #define | XK_KP_Right 0xFF98 |
| #define | XK_KP_Down 0xFF99 |
| #define | XK_KP_Prior 0xFF9A |
| #define | XK_KP_Next 0xFF9B |
| #define | XK_KP_End 0xFF9C |
| #define | XK_KP_Insert 0xFF9E |
| #define | XK_KP_Delete 0xFF9F |
| #define | XF86XK_Standby 0x1008FF10 |
| #define | XF86XK_AudioLowerVolume 0x1008FF11 |
| #define | XF86XK_AudioMute 0x1008FF12 |
| #define | XF86XK_AudioRaiseVolume 0x1008FF13 |
| #define | XF86XK_AudioPlay 0x1008FF14 |
| #define | XF86XK_AudioStop 0x1008FF15 |
| #define | XF86XK_AudioPrev 0x1008FF16 |
| #define | XF86XK_AudioNext 0x1008FF17 |
| #define | XF86XK_HomePage 0x1008FF18 |
| #define | XF86XK_Calculator 0x1008FF1D |
| #define | XF86XK_Mail 0x1008FF19 |
| #define | XF86XK_Start 0x1008FF1A |
| #define | XF86XK_Search 0x1008FF1B |
| #define | XF86XK_AudioRecord 0x1008FF1C |
| #define | XF86XK_Back 0x1008FF26 |
| #define | XF86XK_Forward 0x1008FF27 |
| #define | XF86XK_Stop 0x1008FF28 |
| #define | XF86XK_Refresh 0x1008FF29 |
| #define | XF86XK_Favorites 0x1008FF30 |
| #define | XF86XK_AudioPause 0x1008FF31 |
| #define | XF86XK_AudioMedia 0x1008FF32 |
| #define | XF86XK_MyComputer 0x1008FF33 |
| #define | XF86XK_OpenURL 0x1008FF38 |
| #define | XF86XK_Launch0 0x1008FF40 |
| #define | XF86XK_Launch1 0x1008FF41 |
| #define | XF86XK_Launch2 0x1008FF42 |
| #define | XF86XK_Launch3 0x1008FF43 |
| #define | XF86XK_Launch4 0x1008FF44 |
| #define | XF86XK_Launch5 0x1008FF45 |
| #define | XF86XK_Launch6 0x1008FF46 |
| #define | XF86XK_Launch7 0x1008FF47 |
| #define | XF86XK_Launch8 0x1008FF48 |
| #define | XF86XK_Launch9 0x1008FF49 |
| #define | XF86XK_LaunchA 0x1008FF4A |
| #define | XF86XK_LaunchB 0x1008FF4B |
| #define | XF86XK_LaunchC 0x1008FF4C |
| #define | XF86XK_LaunchD 0x1008FF4D |
| #define | XF86XK_LaunchE 0x1008FF4E |
| #define | XF86XK_LaunchF 0x1008FF4F |
Enumerations | |
| enum | |
| enum | |
Functions | |
| static void | getLocaleAndDirection (QLocale *locale, Qt::LayoutDirection *direction, const QByteArray &layoutName, const QByteArray &variantName) |
| bool | qt_sendSpontaneousEvent (QObject *, QEvent *) |
| static int | qt_XTranslateKey (register QXCoreDesc *dpy, KeyCode keycode, register unsigned int modifiers, unsigned int *modifiers_return, KeySym *keysym_return) |
| static QString | translateKeySym (KeySym keysym, uint xmodifiers, int &code, Qt::KeyboardModifiers &modifiers, QByteArray &chars, int &count) |
| static int | translateKeySym (uint key) |
| static Bool | qt_keypress_scanner (Display *, XEvent *event, XPointer arg) |
| static Bool | qt_keyrelease_scanner (Display *, XEvent *event, XPointer arg) |
Variables | |
| uchar | qt_alt_mask |
| uchar | qt_meta_mask |
| uchar | qt_super_mask |
| uchar | qt_hyper_mask |
| uchar | qt_mode_switch_mask |
| uchar | qt_num_lock_mask = 0 |
| bool | qt_sm_blockUserInput |
| static const unsigned int | KeyTbl [] |
| #define SETMASK | ( | sym, | |||
| mask | ) |
| #define XF86XK_AudioLowerVolume 0x1008FF11 |
Definition at line 674 of file qkeymapper_x11.cpp.
| #define XF86XK_AudioMedia 0x1008FF32 |
Definition at line 693 of file qkeymapper_x11.cpp.
| #define XF86XK_AudioMute 0x1008FF12 |
Definition at line 675 of file qkeymapper_x11.cpp.
| #define XF86XK_AudioNext 0x1008FF17 |
Definition at line 680 of file qkeymapper_x11.cpp.
| #define XF86XK_AudioPause 0x1008FF31 |
Definition at line 692 of file qkeymapper_x11.cpp.
| #define XF86XK_AudioPlay 0x1008FF14 |
Definition at line 677 of file qkeymapper_x11.cpp.
| #define XF86XK_AudioPrev 0x1008FF16 |
Definition at line 679 of file qkeymapper_x11.cpp.
| #define XF86XK_AudioRaiseVolume 0x1008FF13 |
Definition at line 676 of file qkeymapper_x11.cpp.
| #define XF86XK_AudioRecord 0x1008FF1C |
Definition at line 686 of file qkeymapper_x11.cpp.
| #define XF86XK_AudioStop 0x1008FF15 |
Definition at line 678 of file qkeymapper_x11.cpp.
| #define XF86XK_Back 0x1008FF26 |
Definition at line 687 of file qkeymapper_x11.cpp.
| #define XF86XK_Calculator 0x1008FF1D |
Definition at line 682 of file qkeymapper_x11.cpp.
| #define XF86XK_Favorites 0x1008FF30 |
Definition at line 691 of file qkeymapper_x11.cpp.
| #define XF86XK_Forward 0x1008FF27 |
Definition at line 688 of file qkeymapper_x11.cpp.
| #define XF86XK_HomePage 0x1008FF18 |
Definition at line 681 of file qkeymapper_x11.cpp.
| #define XF86XK_Launch0 0x1008FF40 |
Definition at line 696 of file qkeymapper_x11.cpp.
| #define XF86XK_Launch1 0x1008FF41 |
Definition at line 697 of file qkeymapper_x11.cpp.
| #define XF86XK_Launch2 0x1008FF42 |
Definition at line 698 of file qkeymapper_x11.cpp.
| #define XF86XK_Launch3 0x1008FF43 |
Definition at line 699 of file qkeymapper_x11.cpp.
| #define XF86XK_Launch4 0x1008FF44 |
Definition at line 700 of file qkeymapper_x11.cpp.
| #define XF86XK_Launch5 0x1008FF45 |
Definition at line 701 of file qkeymapper_x11.cpp.
| #define XF86XK_Launch6 0x1008FF46 |
Definition at line 702 of file qkeymapper_x11.cpp.
| #define XF86XK_Launch7 0x1008FF47 |
Definition at line 703 of file qkeymapper_x11.cpp.
| #define XF86XK_Launch8 0x1008FF48 |
Definition at line 704 of file qkeymapper_x11.cpp.
| #define XF86XK_Launch9 0x1008FF49 |
Definition at line 705 of file qkeymapper_x11.cpp.
| #define XF86XK_LaunchA 0x1008FF4A |
Definition at line 706 of file qkeymapper_x11.cpp.
| #define XF86XK_LaunchB 0x1008FF4B |
Definition at line 707 of file qkeymapper_x11.cpp.
| #define XF86XK_LaunchC 0x1008FF4C |
Definition at line 708 of file qkeymapper_x11.cpp.
| #define XF86XK_LaunchD 0x1008FF4D |
Definition at line 709 of file qkeymapper_x11.cpp.
| #define XF86XK_LaunchE 0x1008FF4E |
Definition at line 710 of file qkeymapper_x11.cpp.
| #define XF86XK_LaunchF 0x1008FF4F |
Definition at line 711 of file qkeymapper_x11.cpp.
| #define XF86XK_Mail 0x1008FF19 |
Definition at line 683 of file qkeymapper_x11.cpp.
| #define XF86XK_MyComputer 0x1008FF33 |
Definition at line 694 of file qkeymapper_x11.cpp.
| #define XF86XK_OpenURL 0x1008FF38 |
Definition at line 695 of file qkeymapper_x11.cpp.
| #define XF86XK_Refresh 0x1008FF29 |
Definition at line 690 of file qkeymapper_x11.cpp.
| #define XF86XK_Search 0x1008FF1B |
Definition at line 685 of file qkeymapper_x11.cpp.
| #define XF86XK_Standby 0x1008FF10 |
Definition at line 673 of file qkeymapper_x11.cpp.
| #define XF86XK_Start 0x1008FF1A |
Definition at line 684 of file qkeymapper_x11.cpp.
| #define XF86XK_Stop 0x1008FF28 |
Definition at line 689 of file qkeymapper_x11.cpp.
| #define XK_Codeinput 0xFF37 |
Definition at line 632 of file qkeymapper_x11.cpp.
| #define XK_dead_hook 0xFE61 |
Definition at line 624 of file qkeymapper_x11.cpp.
| #define XK_dead_horn 0xFE62 |
| #define XK_ISO_Left_Tab 0xFE20 |
Definition at line 620 of file qkeymapper_x11.cpp.
| #define XK_Kanji_Bangou 0xFF37 |
Definition at line 636 of file qkeymapper_x11.cpp.
| #define XK_KOREAN |
Definition at line 40 of file qkeymapper_x11.cpp.
| #define XK_KP_Delete 0xFF9F |
Definition at line 668 of file qkeymapper_x11.cpp.
| #define XK_KP_Down 0xFF99 |
Definition at line 653 of file qkeymapper_x11.cpp.
| #define XK_KP_End 0xFF9C |
Definition at line 662 of file qkeymapper_x11.cpp.
| #define XK_KP_Home 0xFF95 |
Definition at line 641 of file qkeymapper_x11.cpp.
| #define XK_KP_Insert 0xFF9E |
Definition at line 665 of file qkeymapper_x11.cpp.
| #define XK_KP_Left 0xFF96 |
Definition at line 644 of file qkeymapper_x11.cpp.
| #define XK_KP_Next 0xFF9B |
Definition at line 659 of file qkeymapper_x11.cpp.
| #define XK_KP_Prior 0xFF9A |
Definition at line 656 of file qkeymapper_x11.cpp.
| #define XK_KP_Right 0xFF98 |
Definition at line 650 of file qkeymapper_x11.cpp.
| #define XK_KP_Up 0xFF97 |
Definition at line 647 of file qkeymapper_x11.cpp.
| #define XK_LATIN1 |
Definition at line 39 of file qkeymapper_x11.cpp.
| #define XK_MISCELLANY |
Definition at line 38 of file qkeymapper_x11.cpp.
| #define XK_XKB_KEYS |
Definition at line 41 of file qkeymapper_x11.cpp.
| anonymous enum |
| anonymous enum |
Definition at line 423 of file qkeymapper_x11.cpp.
00423 { 00424 RulesFileIndex = 0, 00425 ModelIndex = 1, 00426 LayoutIndex = 2, 00427 VariantIndex = 3, 00428 OptionsIndex = 4 00429 };
| static void getLocaleAndDirection | ( | QLocale * | locale, | |
| Qt::LayoutDirection * | direction, | |||
| const QByteArray & | layoutName, | |||
| const QByteArray & | variantName | |||
| ) | [static] |
Definition at line 52 of file qkeymapper_x11.cpp.
References QLocale::c(), country, i, language, layout, Qt::LeftToRight, variant, and xkbLayoutData.
Referenced by QKeyMapperPrivate::clearMappings().
00056 { 00057 int i = 0; 00058 while (xkbLayoutData[i].layout != 0) { 00059 if (layoutName == xkbLayoutData[i].layout && variantName == xkbLayoutData[i].variant) { 00060 *locale = QLocale(xkbLayoutData[i].language, xkbLayoutData[i].country); 00061 *direction = xkbLayoutData[i].direction; 00062 return; 00063 } 00064 ++i; 00065 } 00066 *locale = QLocale::c(); 00067 *direction = Qt::LeftToRight; 00068 }
Here is the call graph for this function:

Definition at line 1337 of file qkeymapper_x11.cpp.
References data, XKeyPress, and XKeyRelease.
Referenced by QKeyMapperPrivate::translateKeyEvent().
01338 { 01339 if (event->type != XKeyPress && event->type != XKeyRelease) 01340 return false; 01341 01342 qt_auto_repeat_data *data = (qt_auto_repeat_data *) arg; 01343 if (data->error || 01344 event->xkey.window != data->window || 01345 event->xkey.keycode != data->keycode) 01346 return false; 01347 01348 if (event->type == XKeyPress) { 01349 data->error = (! data->release || event->xkey.time - data->timestamp > 10); 01350 return (! data->error); 01351 } 01352 01353 // must be XKeyRelease event 01354 if (data->release) { 01355 // found a second release 01356 data->error = true; 01357 return false; 01358 } 01359 01360 // found a single release 01361 data->release = true; 01362 data->timestamp = event->xkey.time; 01363 01364 return false; 01365 }
Definition at line 1367 of file qkeymapper_x11.cpp.
References data, and XKeyRelease.
Referenced by QKeyMapperPrivate::translateKeyEvent().
01368 { 01369 const qt_auto_repeat_data *data = (const qt_auto_repeat_data *) arg; 01370 return (event->type == XKeyRelease && 01371 event->xkey.window == data->window && 01372 event->xkey.keycode == data->keycode); 01373 }
Definition at line 4185 of file qapplication_x11.cpp.
04186 { 04187 return QCoreApplication::sendSpontaneousEvent(receiver, event); 04188 }
| static int qt_XTranslateKey | ( | register QXCoreDesc * | dpy, | |
| KeyCode | keycode, | |||
| register unsigned int | modifiers, | |||
| unsigned int * | modifiers_return, | |||
| KeySym * | keysym_return | |||
| ) | [static] |
Definition at line 151 of file qkeymapper_x11.cpp.
References int.
Referenced by QKeyMapperPrivate::possibleKeysCore().
00156 { 00157 int per; 00158 register KeySym *syms; 00159 KeySym sym, lsym, usym; 00160 00161 if (! dpy->keysyms) 00162 return 0; 00163 *modifiers_return = ((ShiftMask|LockMask) 00164 | dpy->mode_switch | dpy->num_lock); 00165 if (((int)keycode < dpy->min_keycode) || ((int)keycode > dpy->max_keycode)) 00166 { 00167 *keysym_return = NoSymbol; 00168 return 1; 00169 } 00170 per = dpy->keysyms_per_keycode; 00171 syms = &dpy->keysyms[(keycode - dpy->min_keycode) * per]; 00172 while ((per > 2) && (syms[per - 1] == NoSymbol)) 00173 per--; 00174 if ((per > 2) && (modifiers & dpy->mode_switch)) { 00175 syms += 2; 00176 per -= 2; 00177 } 00178 if ((modifiers & dpy->num_lock) && 00179 (per > 1 && (IsKeypadKey(syms[1]) || IsPrivateKeypadKey(syms[1])))) { 00180 if ((modifiers & ShiftMask) || 00181 ((modifiers & LockMask) && (dpy->lock_meaning == XK_Shift_Lock))) 00182 *keysym_return = syms[0]; 00183 else 00184 *keysym_return = syms[1]; 00185 } else if (!(modifiers & ShiftMask) && 00186 (!(modifiers & LockMask) || (dpy->lock_meaning == NoSymbol))) { 00187 if ((per == 1) || (syms[1] == NoSymbol)) 00188 XConvertCase(syms[0], keysym_return, &usym); 00189 else 00190 *keysym_return = syms[0]; 00191 } else if (!(modifiers & LockMask) || 00192 (dpy->lock_meaning != XK_Caps_Lock)) { 00193 if ((per == 1) || ((usym = syms[1]) == NoSymbol)) 00194 XConvertCase(syms[0], &lsym, &usym); 00195 *keysym_return = usym; 00196 } else { 00197 if ((per == 1) || ((sym = syms[1]) == NoSymbol)) 00198 sym = syms[0]; 00199 XConvertCase(sym, &lsym, &usym); 00200 if (!(modifiers & ShiftMask) && (sym != syms[0]) && 00201 ((sym != usym) || (lsym == usym))) 00202 XConvertCase(syms[0], &lsym, &usym); 00203 *keysym_return = usym; 00204 } 00205 if (*keysym_return == XK_VoidSymbol) 00206 *keysym_return = NoSymbol; 00207 return 1; 00208 }
| static int translateKeySym | ( | uint | key | ) | [static] |
Definition at line 931 of file qkeymapper_x11.cpp.
References i, int, Qt::Key_Hyper_L, Qt::Key_Hyper_R, Qt::Key_Meta, Qt::Key_Super_L, Qt::Key_Super_R, qt_hyper_mask, qt_meta_mask, and qt_super_mask.
00932 { 00933 int code = -1; 00934 int i = 0; // any other keys 00935 while (KeyTbl[i]) { 00936 if (key == KeyTbl[i]) { 00937 code = (int)KeyTbl[i+1]; 00938 break; 00939 } 00940 i += 2; 00941 } 00942 if (qt_meta_mask) { 00943 // translate Super/Hyper keys to Meta if we're using them as the MetaModifier 00944 if (qt_meta_mask == qt_super_mask && (code == Qt::Key_Super_L || code == Qt::Key_Super_R)) { 00945 code = Qt::Key_Meta; 00946 } else if (qt_meta_mask == qt_hyper_mask && (code == Qt::Key_Hyper_L || code == Qt::Key_Hyper_R)) { 00947 code = Qt::Key_Meta; 00948 } 00949 } 00950 return code; 00951 }
| static QString translateKeySym | ( | KeySym | keysym, | |
| uint | xmodifiers, | |||
| int & | code, | |||
| Qt::KeyboardModifiers & | modifiers, | |||
| QByteArray & | chars, | |||
| int & | count | |||
| ) | [static] |
Definition at line 1114 of file qkeymapper_x11.cpp.
References QTextCodec::codecForMib(), QByteArray::data(), QString::fromLatin1(), int, QByteArray::isEmpty(), Qt::Key_0, Qt::Key_Backtab, Qt::Key_F1, Qt::Key_Tab, Qt::KeypadModifier, QString::length(), mib, QTextCodec::mibEnum(), qt_input_mapper, QByteArray::resize(), Qt::ShiftModifier, QByteArray::size(), QChar::toUpper(), QString::unicode(), QChar::unicode(), X11, and XK_dead_horn.
Referenced by QKeyMapperPrivate::possibleKeysCore(), QKeyMapperPrivate::possibleKeysXKB(), and QKeyMapperPrivate::translateKeyEventInternal().
01117 { 01118 // all keysyms smaller than 0xff00 are actally keys that can be mapped to unicode chars 01119 01120 extern QTextCodec *qt_input_mapper; // from qapplication_x11.cpp 01121 QTextCodec *mapper = qt_input_mapper; 01122 QChar converted; 01123 01124 if (count == 0 && keysym < 0xff00) { 01125 unsigned char byte3 = (unsigned char)(keysym >> 8); 01126 int mib = -1; 01127 switch(byte3) { 01128 case 0: // Latin 1 01129 case 1: // Latin 2 01130 case 2: //latin 3 01131 case 3: // latin4 01132 mib = byte3 + 4; break; 01133 case 5: // arabic 01134 mib = 82; break; 01135 case 12: // Hebrew 01136 mib = 85; break; 01137 case 13: // Thai 01138 mib = 2259; break; 01139 case 4: // kana 01140 case 6: // cyrillic 01141 case 7: // greek 01142 case 8: // technical, no mapping here at the moment 01143 case 9: // Special 01144 case 10: // Publishing 01145 case 11: // APL 01146 case 14: // Korean, no mapping 01147 mib = -1; // manual conversion 01148 mapper = 0; 01149 #if !defined(QT_NO_XIM) 01150 converted = keysymToUnicode(byte3, keysym & 0xff); 01151 #endif 01152 case 0x20: 01153 // currency symbols 01154 if (keysym >= 0x20a0 && keysym <= 0x20ac) { 01155 mib = -1; // manual conversion 01156 mapper = 0; 01157 converted = (uint)keysym; 01158 } 01159 break; 01160 default: 01161 break; 01162 } 01163 if (mib != -1) { 01164 mapper = QTextCodec::codecForMib(mib); 01165 if (chars.isEmpty()) 01166 chars.resize(1); 01167 chars[0] = (unsigned char) (keysym & 0xff); // get only the fourth bit for conversion later 01168 count++; 01169 } 01170 } else if (keysym >= 0x1000000 && keysym <= 0x100ffff) { 01171 converted = (ushort) (keysym - 0x1000000); 01172 mapper = 0; 01173 } 01174 if (count < (int)chars.size()-1) 01175 chars[count] = '\0'; 01176 01177 QString text; 01178 if (!mapper && converted.unicode() != 0x0) { 01179 text = converted; 01180 } else if (!chars.isEmpty()) { 01181 // convert chars (8bit) to text (unicode). 01182 if (mapper) 01183 text = mapper->toUnicode(chars.data(), count, 0); 01184 else 01185 text = QString::fromLatin1(chars); 01186 } 01187 01188 modifiers = X11->translateModifiers(xmodifiers); 01189 01190 // Commentary in X11/keysymdef says that X codes match ASCII, so it 01191 // is safe to use the locale functions to process X codes in ISO8859-1. 01192 // 01193 // This is mainly for compatibility - applications should not use the 01194 // Qt keycodes between 128 and 255, but should rather use the 01195 // QKeyEvent::text(). 01196 // 01197 extern QTextCodec *qt_input_mapper; // from qapplication_x11.cpp 01198 if (keysym < 128 || (keysym < 256 && (!qt_input_mapper || qt_input_mapper->mibEnum()==4))) { 01199 // upper-case key, if known 01200 code = isprint((int)keysym) ? toupper((int)keysym) : 0; 01201 } else if (keysym >= XK_F1 && keysym <= XK_F35) { 01202 // function keys 01203 code = Qt::Key_F1 + ((int)keysym - XK_F1); 01204 } else if (keysym >= XK_KP_Space && keysym <= XK_KP_9) { 01205 if (keysym >= XK_KP_0) { 01206 // numeric keypad keys 01207 code = Qt::Key_0 + ((int)keysym - XK_KP_0); 01208 } else { 01209 code = translateKeySym(keysym); 01210 } 01211 modifiers |= Qt::KeypadModifier; 01212 } else if (text.length() == 1 && text.unicode()->unicode() > 0x1f && text.unicode()->unicode() != 0x7f && !(keysym >= XK_dead_grave && keysym <= XK_dead_horn)) { 01213 code = text.unicode()->toUpper().unicode(); 01214 } else { 01215 // any other keys 01216 code = translateKeySym(keysym); 01217 01218 if (code == Qt::Key_Tab && (modifiers & Qt::ShiftModifier)) { 01219 // map shift+tab to shift+backtab, QShortcutMap knows about it 01220 // and will handle it. 01221 code = Qt::Key_Backtab; 01222 text = QString(); 01223 } 01224 } 01225 01226 return text; 01227 }
Here is the call graph for this function:

const unsigned int KeyTbl[] [static] |
Definition at line 717 of file qkeymapper_x11.cpp.
| uchar qt_alt_mask |
Definition at line 281 of file qapplication_x11.cpp.
Referenced by QKeyMapperPrivate::clearMappings(), and QX11Data::translateModifiers().
| uchar qt_hyper_mask |
Definition at line 284 of file qapplication_x11.cpp.
Referenced by QKeyMapperPrivate::clearMappings(), and translateKeySym().
| uchar qt_meta_mask |
Definition at line 282 of file qapplication_x11.cpp.
Referenced by QKeyMapperPrivate::clearMappings(), translateKeySym(), and QX11Data::translateModifiers().
| uchar qt_mode_switch_mask |
Definition at line 285 of file qapplication_x11.cpp.
Referenced by QKeyMapperPrivate::clearMappings(), and QX11Data::translateModifiers().
| uchar qt_num_lock_mask = 0 |
Definition at line 78 of file qkeymapper_x11.cpp.
| bool qt_sm_blockUserInput |
Definition at line 306 of file qapplication_x11.cpp.
Referenced by QSessionManager::allowsErrorInteraction(), QSessionManager::allowsInteraction(), QSessionManager::release(), resetSmState(), sm_performSaveYourself(), and QETWidget::translateMouseEvent().
| uchar qt_super_mask |
Definition at line 283 of file qapplication_x11.cpp.
Referenced by QKeyMapperPrivate::clearMappings(), and translateKeySym().
1.5.1