Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 495984
Collapse All | Expand All

(-)libqxt.old/src/gui/keymapper_x11.h (+364 lines)
Line 0 Link Here
1
#ifndef KEYMAPPER_X11_H
2
#define KEYMAPPER_X11_H
3
4
// (davidsansome) Nicked from qkeymapper_x11.cpp
5
6
#include <Qt>
7
8
#define XK_MISCELLANY
9
#define XK_LATIN1
10
#define XK_KOREAN
11
#define XK_XKB_KEYS
12
#include <X11/keysymdef.h>
13
14
//
15
// Keyboard event translation
16
//
17
18
#ifndef XK_ISO_Left_Tab
19
#define XK_ISO_Left_Tab         0xFE20
20
#endif
21
22
#ifndef XK_dead_hook
23
#define XK_dead_hook            0xFE61
24
#endif
25
26
#ifndef XK_dead_horn
27
#define XK_dead_horn            0xFE62
28
#endif
29
30
#ifndef XK_Codeinput
31
#define XK_Codeinput            0xFF37
32
#endif
33
34
#ifndef XK_Kanji_Bangou
35
#define XK_Kanji_Bangou         0xFF37 /* same as codeinput */
36
#endif
37
38
// Fix old X libraries
39
#ifndef XK_KP_Home
40
#define XK_KP_Home              0xFF95
41
#endif
42
#ifndef XK_KP_Left
43
#define XK_KP_Left              0xFF96
44
#endif
45
#ifndef XK_KP_Up
46
#define XK_KP_Up                0xFF97
47
#endif
48
#ifndef XK_KP_Right
49
#define XK_KP_Right             0xFF98
50
#endif
51
#ifndef XK_KP_Down
52
#define XK_KP_Down              0xFF99
53
#endif
54
#ifndef XK_KP_Prior
55
#define XK_KP_Prior             0xFF9A
56
#endif
57
#ifndef XK_KP_Next
58
#define XK_KP_Next              0xFF9B
59
#endif
60
#ifndef XK_KP_End
61
#define XK_KP_End               0xFF9C
62
#endif
63
#ifndef XK_KP_Insert
64
#define XK_KP_Insert            0xFF9E
65
#endif
66
#ifndef XK_KP_Delete
67
#define XK_KP_Delete            0xFF9F
68
#endif
69
70
// the next lines are taken from XFree > 4.0 (X11/XF86keysyms.h), defining some special
71
// multimedia keys. They are included here as not every system has them.
72
#define XF86XK_Standby          0x1008FF10
73
#define XF86XK_AudioLowerVolume 0x1008FF11
74
#define XF86XK_AudioMute        0x1008FF12
75
#define XF86XK_AudioRaiseVolume 0x1008FF13
76
#define XF86XK_AudioPlay        0x1008FF14
77
#define XF86XK_AudioStop        0x1008FF15
78
#define XF86XK_AudioPrev        0x1008FF16
79
#define XF86XK_AudioNext        0x1008FF17
80
#define XF86XK_HomePage         0x1008FF18
81
#define XF86XK_Calculator       0x1008FF1D
82
#define XF86XK_Mail             0x1008FF19
83
#define XF86XK_Start            0x1008FF1A
84
#define XF86XK_Search           0x1008FF1B
85
#define XF86XK_AudioRecord      0x1008FF1C
86
#define XF86XK_Back             0x1008FF26
87
#define XF86XK_Forward          0x1008FF27
88
#define XF86XK_Stop             0x1008FF28
89
#define XF86XK_Refresh          0x1008FF29
90
#define XF86XK_Favorites        0x1008FF30
91
#define XF86XK_AudioPause       0x1008FF31
92
#define XF86XK_AudioMedia       0x1008FF32
93
#define XF86XK_MyComputer       0x1008FF33
94
#define XF86XK_OpenURL          0x1008FF38
95
#define XF86XK_Launch0          0x1008FF40
96
#define XF86XK_Launch1          0x1008FF41
97
#define XF86XK_Launch2          0x1008FF42
98
#define XF86XK_Launch3          0x1008FF43
99
#define XF86XK_Launch4          0x1008FF44
100
#define XF86XK_Launch5          0x1008FF45
101
#define XF86XK_Launch6          0x1008FF46
102
#define XF86XK_Launch7          0x1008FF47
103
#define XF86XK_Launch8          0x1008FF48
104
#define XF86XK_Launch9          0x1008FF49
105
#define XF86XK_LaunchA          0x1008FF4A
106
#define XF86XK_LaunchB          0x1008FF4B
107
#define XF86XK_LaunchC          0x1008FF4C
108
#define XF86XK_LaunchD          0x1008FF4D
109
#define XF86XK_LaunchE          0x1008FF4E
110
#define XF86XK_LaunchF          0x1008FF4F
111
// end of XF86keysyms.h
112
113
// Special keys used by Qtopia, mapped into the X11 private keypad range.
114
#define QTOPIAXK_Select         0x11000601
115
#define QTOPIAXK_Yes            0x11000602
116
#define QTOPIAXK_No             0x11000603
117
#define QTOPIAXK_Cancel         0x11000604
118
#define QTOPIAXK_Printer        0x11000605
119
#define QTOPIAXK_Execute        0x11000606
120
#define QTOPIAXK_Sleep          0x11000607
121
#define QTOPIAXK_Play           0x11000608
122
#define QTOPIAXK_Zoom           0x11000609
123
#define QTOPIAXK_Context1       0x1100060A
124
#define QTOPIAXK_Context2       0x1100060B
125
#define QTOPIAXK_Context3       0x1100060C
126
#define QTOPIAXK_Context4       0x1100060D
127
#define QTOPIAXK_Call           0x1100060E
128
#define QTOPIAXK_Hangup         0x1100060F
129
#define QTOPIAXK_Flip           0x11000610
130
131
// keyboard mapping table
132
static const unsigned int KeyTbl[] = {
133
134
    // misc keys
135
136
    XK_Escape,                  Qt::Key_Escape,
137
    XK_Tab,                     Qt::Key_Tab,
138
    XK_ISO_Left_Tab,            Qt::Key_Backtab,
139
    XK_BackSpace,               Qt::Key_Backspace,
140
    XK_Return,                  Qt::Key_Return,
141
    XK_Insert,                  Qt::Key_Insert,
142
    XK_Delete,                  Qt::Key_Delete,
143
    XK_Clear,                   Qt::Key_Delete,
144
    XK_Pause,                   Qt::Key_Pause,
145
    XK_Print,                   Qt::Key_Print,
146
    0x1005FF60,                 Qt::Key_SysReq,         // hardcoded Sun SysReq
147
    0x1007ff00,                 Qt::Key_SysReq,         // hardcoded X386 SysReq
148
149
    // cursor movement
150
151
    XK_Home,                    Qt::Key_Home,
152
    XK_End,                     Qt::Key_End,
153
    XK_Left,                    Qt::Key_Left,
154
    XK_Up,                      Qt::Key_Up,
155
    XK_Right,                   Qt::Key_Right,
156
    XK_Down,                    Qt::Key_Down,
157
    XK_Prior,                   Qt::Key_PageUp,
158
    XK_Next,                    Qt::Key_PageDown,
159
160
    // modifiers
161
162
    XK_Shift_L,                 Qt::Key_Shift,
163
    XK_Shift_R,                 Qt::Key_Shift,
164
    XK_Shift_Lock,              Qt::Key_Shift,
165
    XK_Control_L,               Qt::Key_Control,
166
    XK_Control_R,               Qt::Key_Control,
167
    XK_Meta_L,                  Qt::Key_Meta,
168
    XK_Meta_R,                  Qt::Key_Meta,
169
    XK_Alt_L,                   Qt::Key_Alt,
170
    XK_Alt_R,                   Qt::Key_Alt,
171
    XK_Caps_Lock,               Qt::Key_CapsLock,
172
    XK_Num_Lock,                Qt::Key_NumLock,
173
    XK_Scroll_Lock,             Qt::Key_ScrollLock,
174
    XK_Super_L,                 Qt::Key_Super_L,
175
    XK_Super_R,                 Qt::Key_Super_R,
176
    XK_Menu,                    Qt::Key_Menu,
177
    XK_Hyper_L,                 Qt::Key_Hyper_L,
178
    XK_Hyper_R,                 Qt::Key_Hyper_R,
179
    XK_Help,                    Qt::Key_Help,
180
    0x1000FF74,                 Qt::Key_Backtab,        // hardcoded HP backtab
181
    0x1005FF10,                 Qt::Key_F11,            // hardcoded Sun F36 (labeled F11)
182
    0x1005FF11,                 Qt::Key_F12,            // hardcoded Sun F37 (labeled F12)
183
184
    // numeric and function keypad keys
185
186
    XK_KP_Space,                Qt::Key_Space,
187
    XK_KP_Tab,                  Qt::Key_Tab,
188
    XK_KP_Enter,                Qt::Key_Enter,
189
    //XK_KP_F1,                 Qt::Key_F1,
190
    //XK_KP_F2,                 Qt::Key_F2,
191
    //XK_KP_F3,                 Qt::Key_F3,
192
    //XK_KP_F4,                 Qt::Key_F4,
193
    XK_KP_Home,                 Qt::Key_Home,
194
    XK_KP_Left,                 Qt::Key_Left,
195
    XK_KP_Up,                   Qt::Key_Up,
196
    XK_KP_Right,                Qt::Key_Right,
197
    XK_KP_Down,                 Qt::Key_Down,
198
    XK_KP_Prior,                Qt::Key_PageUp,
199
    XK_KP_Next,                 Qt::Key_PageDown,
200
    XK_KP_End,                  Qt::Key_End,
201
    XK_KP_Begin,                Qt::Key_Clear,
202
    XK_KP_Insert,               Qt::Key_Insert,
203
    XK_KP_Delete,               Qt::Key_Delete,
204
    XK_KP_Equal,                Qt::Key_Equal,
205
    XK_KP_Multiply,             Qt::Key_Asterisk,
206
    XK_KP_Add,                  Qt::Key_Plus,
207
    XK_KP_Separator,            Qt::Key_Comma,
208
    XK_KP_Subtract,             Qt::Key_Minus,
209
    XK_KP_Decimal,              Qt::Key_Period,
210
    XK_KP_Divide,               Qt::Key_Slash,
211
212
    // International input method support keys
213
214
    // International & multi-key character composition
215
    XK_ISO_Level3_Shift,        Qt::Key_AltGr,
216
    XK_Multi_key,		Qt::Key_Multi_key,
217
    XK_Codeinput,		Qt::Key_Codeinput,
218
    XK_SingleCandidate,		Qt::Key_SingleCandidate,
219
    XK_MultipleCandidate,	Qt::Key_MultipleCandidate,
220
    XK_PreviousCandidate,	Qt::Key_PreviousCandidate,
221
222
    // Misc Functions
223
    XK_Mode_switch,		Qt::Key_Mode_switch,
224
    XK_script_switch,		Qt::Key_Mode_switch,
225
226
    // Japanese keyboard support
227
    XK_Kanji,			Qt::Key_Kanji,
228
    XK_Muhenkan,		Qt::Key_Muhenkan,
229
    //XK_Henkan_Mode,		Qt::Key_Henkan_Mode,
230
    XK_Henkan_Mode,		Qt::Key_Henkan,
231
    XK_Henkan,			Qt::Key_Henkan,
232
    XK_Romaji,			Qt::Key_Romaji,
233
    XK_Hiragana,		Qt::Key_Hiragana,
234
    XK_Katakana,		Qt::Key_Katakana,
235
    XK_Hiragana_Katakana,	Qt::Key_Hiragana_Katakana,
236
    XK_Zenkaku,			Qt::Key_Zenkaku,
237
    XK_Hankaku,			Qt::Key_Hankaku,
238
    XK_Zenkaku_Hankaku,		Qt::Key_Zenkaku_Hankaku,
239
    XK_Touroku,			Qt::Key_Touroku,
240
    XK_Massyo,			Qt::Key_Massyo,
241
    XK_Kana_Lock,		Qt::Key_Kana_Lock,
242
    XK_Kana_Shift,		Qt::Key_Kana_Shift,
243
    XK_Eisu_Shift,		Qt::Key_Eisu_Shift,
244
    XK_Eisu_toggle,		Qt::Key_Eisu_toggle,
245
    //XK_Kanji_Bangou,		Qt::Key_Kanji_Bangou,
246
    //XK_Zen_Koho,		Qt::Key_Zen_Koho,
247
    //XK_Mae_Koho,		Qt::Key_Mae_Koho,
248
    XK_Kanji_Bangou,		Qt::Key_Codeinput,
249
    XK_Zen_Koho,		Qt::Key_MultipleCandidate,
250
    XK_Mae_Koho,		Qt::Key_PreviousCandidate,
251
252
#ifdef XK_KOREAN
253
    // Korean keyboard support
254
    XK_Hangul,			Qt::Key_Hangul,
255
    XK_Hangul_Start,		Qt::Key_Hangul_Start,
256
    XK_Hangul_End,		Qt::Key_Hangul_End,
257
    XK_Hangul_Hanja,		Qt::Key_Hangul_Hanja,
258
    XK_Hangul_Jamo,		Qt::Key_Hangul_Jamo,
259
    XK_Hangul_Romaja,		Qt::Key_Hangul_Romaja,
260
    //XK_Hangul_Codeinput,	Qt::Key_Hangul_Codeinput,
261
    XK_Hangul_Codeinput,	Qt::Key_Codeinput,
262
    XK_Hangul_Jeonja,		Qt::Key_Hangul_Jeonja,
263
    XK_Hangul_Banja,		Qt::Key_Hangul_Banja,
264
    XK_Hangul_PreHanja,		Qt::Key_Hangul_PreHanja,
265
    XK_Hangul_PostHanja,	Qt::Key_Hangul_PostHanja,
266
    //XK_Hangul_SingleCandidate,Qt::Key_Hangul_SingleCandidate,
267
    //XK_Hangul_MultipleCandidate,Qt::Key_Hangul_MultipleCandidate,
268
    //XK_Hangul_PreviousCandidate,Qt::Key_Hangul_PreviousCandidate,
269
    XK_Hangul_SingleCandidate,	Qt::Key_SingleCandidate,
270
    XK_Hangul_MultipleCandidate,Qt::Key_MultipleCandidate,
271
    XK_Hangul_PreviousCandidate,Qt::Key_PreviousCandidate,
272
    XK_Hangul_Special,		Qt::Key_Hangul_Special,
273
    //XK_Hangul_switch,		Qt::Key_Hangul_switch,
274
    XK_Hangul_switch,		Qt::Key_Mode_switch,
275
#endif  // XK_KOREAN
276
277
    // dead keys
278
    XK_dead_grave,              Qt::Key_Dead_Grave,
279
    XK_dead_acute,              Qt::Key_Dead_Acute,
280
    XK_dead_circumflex,         Qt::Key_Dead_Circumflex,
281
    XK_dead_tilde,              Qt::Key_Dead_Tilde,
282
    XK_dead_macron,             Qt::Key_Dead_Macron,
283
    XK_dead_breve,              Qt::Key_Dead_Breve,
284
    XK_dead_abovedot,           Qt::Key_Dead_Abovedot,
285
    XK_dead_diaeresis,          Qt::Key_Dead_Diaeresis,
286
    XK_dead_abovering,          Qt::Key_Dead_Abovering,
287
    XK_dead_doubleacute,        Qt::Key_Dead_Doubleacute,
288
    XK_dead_caron,              Qt::Key_Dead_Caron,
289
    XK_dead_cedilla,            Qt::Key_Dead_Cedilla,
290
    XK_dead_ogonek,             Qt::Key_Dead_Ogonek,
291
    XK_dead_iota,               Qt::Key_Dead_Iota,
292
    XK_dead_voiced_sound,       Qt::Key_Dead_Voiced_Sound,
293
    XK_dead_semivoiced_sound,   Qt::Key_Dead_Semivoiced_Sound,
294
    XK_dead_belowdot,           Qt::Key_Dead_Belowdot,
295
    XK_dead_hook,               Qt::Key_Dead_Hook,
296
    XK_dead_horn,               Qt::Key_Dead_Horn,
297
298
    // Special multimedia keys
299
    // currently only tested with MS internet keyboard
300
301
    // browsing keys
302
    XF86XK_Back,                Qt::Key_Back,
303
    XF86XK_Forward,             Qt::Key_Forward,
304
    XF86XK_Stop,                Qt::Key_Stop,
305
    XF86XK_Refresh,             Qt::Key_Refresh,
306
    XF86XK_Favorites,           Qt::Key_Favorites,
307
    XF86XK_AudioMedia,          Qt::Key_LaunchMedia,
308
    XF86XK_OpenURL,             Qt::Key_OpenUrl,
309
    XF86XK_HomePage,            Qt::Key_HomePage,
310
    XF86XK_Search,              Qt::Key_Search,
311
312
    // media keys
313
    XF86XK_AudioLowerVolume,    Qt::Key_VolumeDown,
314
    XF86XK_AudioMute,           Qt::Key_VolumeMute,
315
    XF86XK_AudioRaiseVolume,    Qt::Key_VolumeUp,
316
    XF86XK_AudioPlay,           Qt::Key_MediaPlay,
317
    XF86XK_AudioStop,           Qt::Key_MediaStop,
318
    XF86XK_AudioPrev,           Qt::Key_MediaPrevious,
319
    XF86XK_AudioNext,           Qt::Key_MediaNext,
320
    XF86XK_AudioRecord,         Qt::Key_MediaRecord,
321
322
    // launch keys
323
    XF86XK_Mail,                Qt::Key_LaunchMail,
324
    XF86XK_MyComputer,          Qt::Key_Launch0,
325
    XF86XK_Calculator,          Qt::Key_Launch1,
326
    XF86XK_Standby,             Qt::Key_Standby,
327
328
    XF86XK_Launch0,             Qt::Key_Launch2,
329
    XF86XK_Launch1,             Qt::Key_Launch3,
330
    XF86XK_Launch2,             Qt::Key_Launch4,
331
    XF86XK_Launch3,             Qt::Key_Launch5,
332
    XF86XK_Launch4,             Qt::Key_Launch6,
333
    XF86XK_Launch5,             Qt::Key_Launch7,
334
    XF86XK_Launch6,             Qt::Key_Launch8,
335
    XF86XK_Launch7,             Qt::Key_Launch9,
336
    XF86XK_Launch8,             Qt::Key_LaunchA,
337
    XF86XK_Launch9,             Qt::Key_LaunchB,
338
    XF86XK_LaunchA,             Qt::Key_LaunchC,
339
    XF86XK_LaunchB,             Qt::Key_LaunchD,
340
    XF86XK_LaunchC,             Qt::Key_LaunchE,
341
    XF86XK_LaunchD,             Qt::Key_LaunchF,
342
343
    // Qtopia keys
344
    QTOPIAXK_Select,            Qt::Key_Select,
345
    QTOPIAXK_Yes,               Qt::Key_Yes,
346
    QTOPIAXK_No,                Qt::Key_No,
347
    QTOPIAXK_Cancel,            Qt::Key_Cancel,
348
    QTOPIAXK_Printer,           Qt::Key_Printer,
349
    QTOPIAXK_Execute,           Qt::Key_Execute,
350
    QTOPIAXK_Sleep,             Qt::Key_Sleep,
351
    QTOPIAXK_Play,              Qt::Key_Play,
352
    QTOPIAXK_Zoom,              Qt::Key_Zoom,
353
    QTOPIAXK_Context1,          Qt::Key_Context1,
354
    QTOPIAXK_Context2,          Qt::Key_Context2,
355
    QTOPIAXK_Context3,          Qt::Key_Context3,
356
    QTOPIAXK_Context4,          Qt::Key_Context4,
357
    QTOPIAXK_Call,              Qt::Key_Call,
358
    QTOPIAXK_Hangup,            Qt::Key_Hangup,
359
    QTOPIAXK_Flip,              Qt::Key_Flip,
360
361
    0,                          0
362
};
363
364
#endif // KEYMAPPER_X11_H
(-)libqxt.old/src/gui/qxtglobalshortcut_x11.cpp (-1 / +20 lines)
Lines 26-31 Link Here
26
#include <QX11Info>
26
#include <QX11Info>
27
#include <X11/Xlib.h>
27
#include <X11/Xlib.h>
28
28
29
#include "keymapper_x11.h"
30
29
static int (*original_x_errhandler)(Display* display, XErrorEvent* event);
31
static int (*original_x_errhandler)(Display* display, XErrorEvent* event);
30
32
31
static int qxt_x_errhandler(Display* display, XErrorEvent *event)
33
static int qxt_x_errhandler(Display* display, XErrorEvent *event)
Lines 83-90 quint32 QxtGlobalShortcutPrivate::native Link Here
83
85
84
quint32 QxtGlobalShortcutPrivate::nativeKeycode(Qt::Key key)
86
quint32 QxtGlobalShortcutPrivate::nativeKeycode(Qt::Key key)
85
{
87
{
88
    // (davidsansome) Try the table from QKeyMapper first - this seems to be
89
    // the only way to get Keysyms for the media keys.
90
    unsigned int keysym = 0;
91
    int i = 0;
92
    while (KeyTbl[i]) {
93
      if (KeyTbl[i+1] == static_cast<uint>(key)) {
94
        keysym = KeyTbl[i];
95
        break;
96
      }
97
      i += 2;
98
    }
99
100
    // If that didn't work then fall back on XStringToKeysym
101
    if (!keysym) {
102
      keysym = XStringToKeysym(QKeySequence(key).toString().toLatin1().data());
103
    }
104
86
    Display* display = QX11Info::display();
105
    Display* display = QX11Info::display();
87
    return XKeysymToKeycode(display, XStringToKeysym(QKeySequence(key).toString().toLatin1().data()));
106
    return XKeysymToKeycode(display, keysym);
88
}
107
}
89
108
90
bool QxtGlobalShortcutPrivate::registerShortcut(quint32 nativeKey, quint32 nativeMods)
109
bool QxtGlobalShortcutPrivate::registerShortcut(quint32 nativeKey, quint32 nativeMods)

Return to bug 495984