Blob Blame History Raw
From 1a94cd7b132497f70a2b97ec2b58f6e2b1c5076a Mon Sep 17 00:00:00 2001
From: Helio Chissini de Castro <helio@kde.org>
Date: Fri, 10 Jul 2009 16:00:13 -0300
Subject: [PATCH 16/18] Fill gap of X.org/XFree multimedia/special/launcher keys
 Qt up to 4.5.x is missing whole setup of multimedia keys already defined by X

---
 src/corelib/global/qnamespace.h   |   97 ++++++++++++-
 src/gui/kernel/qkeymapper_x11.cpp |  286 ++++++++++++++++++++++++++++++-------
 src/gui/kernel/qkeysequence.cpp   |  174 +++++++++++++++++------
 3 files changed, 461 insertions(+), 96 deletions(-)

diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h
index 3edbca7..ddf27a8 100644
--- a/src/corelib/global/qnamespace.h
+++ b/src/corelib/global/qnamespace.h
@@ -895,12 +895,10 @@ public:
         Key_Dead_Horn           = 0x01001262,
 
         // multimedia/internet keys - ignored by default - see QKeyEvent c'tor
-
         Key_Back  = 0x01000061,
         Key_Forward  = 0x01000062,
         Key_Stop  = 0x01000063,
         Key_Refresh  = 0x01000064,
-
         Key_VolumeDown = 0x01000070,
         Key_VolumeMute  = 0x01000071,
         Key_VolumeUp = 0x01000072,
@@ -909,7 +907,6 @@ public:
         Key_BassDown = 0x01000075,
         Key_TrebleUp = 0x01000076,
         Key_TrebleDown = 0x01000077,
-
         Key_MediaPlay  = 0x01000080,
         Key_MediaStop  = 0x01000081,
         Key_MediaPrevious  = 0x01000082,
@@ -918,13 +915,11 @@ public:
 #endif
         Key_MediaNext  = 0x01000083,
         Key_MediaRecord = 0x01000084,
-
         Key_HomePage  = 0x01000090,
         Key_Favorites  = 0x01000091,
         Key_Search  = 0x01000092,
         Key_Standby = 0x01000093,
         Key_OpenUrl = 0x01000094,
-
         Key_LaunchMail  = 0x010000a0,
         Key_LaunchMedia = 0x010000a1,
         Key_Launch0  = 0x010000a2,
@@ -943,6 +938,98 @@ public:
         Key_LaunchD  = 0x010000af,
         Key_LaunchE  = 0x010000b0,
         Key_LaunchF  = 0x010000b1,
+        Key_MonBrightnessUp = 0x010000b2,
+        Key_MonBrightnessDown = 0x010000b3,
+        Key_KeyboardLightOnOff = 0x010000b4,
+        Key_KeyboardBrightnessUp = 0x010000b5,
+        Key_KeyboardBrightnessDown = 0x010000b6,
+        Key_PowerOff = 0x010000b7,
+        Key_WakeUp = 0x010000b8,
+        Key_Eject = 0x010000b9,
+        Key_ScreenSaver = 0x010000ba,
+        Key_WWW = 0x010000bb,
+        Key_Memo = 0x010000bc,
+        Key_LightBulb = 0x010000bd,
+        Key_Shop = 0x010000be,
+        Key_History = 0x010000bf,
+        Key_AddFavorite = 0x010000c0,
+        Key_HotLinks = 0x010000c1,
+        Key_BrightnessAdjust = 0x010000c2,
+        Key_Finance = 0x010000c3,
+        Key_Community = 0x010000c4,
+        Key_AudioRewind = 0x010000c5,
+        Key_BackForward = 0x010000c6,
+        Key_ApplicationLeft = 0x010000c7,
+        Key_ApplicationRight = 0x010000c8,
+        Key_Book = 0x010000c9,
+        Key_CD = 0x010000ca,
+        Key_Calculator = 0x010000cb,
+        Key_ToDoList = 0x010000cc,
+        Key_ClearGrab = 0x010000cd,
+        Key_Close = 0x010000ce,
+        Key_Copy = 0x010000cf,
+        Key_Cut = 0x010000d0,
+        Key_Display = 0x010000d1,
+        Key_DOS = 0x010000d2,
+        Key_Documents = 0x010000d3,
+        Key_Excel = 0x010000d4,
+        Key_Explorer = 0x010000d5,
+        Key_Game = 0x010000d6,
+        Key_Go = 0x010000d7,
+        Key_iTouch = 0x010000d8,
+        Key_LogOff = 0x010000d9,
+        Key_Market = 0x010000da,
+        Key_Meeting = 0x010000db,
+        Key_MenuKB = 0x010000dc,
+        Key_MenuPB = 0x010000dd,
+        Key_MySites = 0x010000de,
+        Key_News = 0x010000df,
+        Key_OfficeHome = 0x010000e0,
+        Key_Option = 0x010000e1,
+        Key_Paste = 0x010000e2,
+        Key_Phone = 0x010000e3,
+        Key_Calendar = 0x010000e4,
+        Key_Reply = 0x010000e5,
+        Key_Reload = 0x010000e6,
+        Key_RotateWindows = 0x010000e7,
+        Key_RotationPB = 0x010000e8,
+        Key_RotationKB = 0x010000e9,
+        Key_Save = 0x010000ea,
+        Key_Send = 0x010000eb,
+        Key_Spell = 0x010000ec,
+        Key_SplitScreen = 0x010000ed,
+        Key_Support = 0x010000ee,
+        Key_TaskPane = 0x010000ef,
+        Key_Terminal = 0x010000f0,
+        Key_Tools = 0x010000f1,
+        Key_Travel = 0x010000f2,
+        Key_Video = 0x010000f3,
+        Key_Word = 0x010000f4,
+        Key_Xfer = 0x010000f5,
+        Key_ZoomIn = 0x010000f6,
+        Key_ZoomOut = 0x010000f7,
+        Key_Away = 0x010000f8,
+        Key_Messenger = 0x010000f9,
+        Key_WebCam = 0x010000fa,
+        Key_MailForward = 0x010000fb,
+        Key_Pictures = 0x010000fc,
+        Key_Music = 0x010000fd,
+        Key_Battery = 0x010000fe,
+        Key_Bluetooth = 0x010000ff,
+        Key_WLAN = 0x01000100,
+        Key_UWB = 0x01000101,
+        Key_AudioForward = 0x01000102,
+        Key_AudioRepeat = 0x01000103,
+        Key_AudioRandomPlay = 0x01000104,
+        Key_Subtitle = 0x01000105,
+        Key_AudioCycleTrack = 0x01000106,
+        Key_Time = 0x01000107,
+        Key_Hibernate = 0x01000108,
+        Key_View = 0x01000109,
+        Key_TopMenu = 0x0100010a,
+        Key_PowerDown = 0x0100010b,
+        Key_Suspend = 0x0100010c,
+        Key_ContrastAdjust = 0x0100010d,
 
         Key_MediaLast = 0x0100ffff,
 
diff --git a/src/gui/kernel/qkeymapper_x11.cpp b/src/gui/kernel/qkeymapper_x11.cpp
index 98ed61c..f55b491 100644
--- a/src/gui/kernel/qkeymapper_x11.cpp
+++ b/src/gui/kernel/qkeymapper_x11.cpp
@@ -714,47 +714,144 @@ extern bool qt_sm_blockUserInput;
 #define XK_KP_Delete            0xFF9F
 #endif
 
-// the next lines are taken from XFree > 4.0 (X11/XF86keysyms.h), defining some special
+// the next lines are taken on 10/2009 from X.org (X11/XF86keysym.h), defining some special
 // multimedia keys. They are included here as not every system has them.
-#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
+#define XF86XK_MonBrightnessUp     0x1008FF02
+#define XF86XK_MonBrightnessDown   0x1008FF03
+#define XF86XK_KbdLightOnOff       0x1008FF04
+#define XF86XK_KbdBrightnessUp     0x1008FF05
+#define XF86XK_KbdBrightnessDown   0x1008FF06
+#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_Mail                0x1008FF19
+#define XF86XK_Start               0x1008FF1A
+#define XF86XK_Search              0x1008FF1B
+#define XF86XK_AudioRecord         0x1008FF1C
+#define XF86XK_Calculator          0x1008FF1D
+#define XF86XK_Memo                0x1008FF1E
+#define XF86XK_ToDoList            0x1008FF1F
+#define XF86XK_Calendar            0x1008FF20
+#define XF86XK_PowerDown           0x1008FF21
+#define XF86XK_ContrastAdjust      0x1008FF22
+#define XF86XK_Back                0x1008FF26
+#define XF86XK_Forward             0x1008FF27
+#define XF86XK_Stop                0x1008FF28
+#define XF86XK_Refresh             0x1008FF29
+#define XF86XK_PowerOff            0x1008FF2A
+#define XF86XK_WakeUp              0x1008FF2B
+#define XF86XK_Eject               0x1008FF2C
+#define XF86XK_ScreenSaver         0x1008FF2D
+#define XF86XK_WWW                 0x1008FF2E
+#define XF86XK_Sleep               0x1008FF2F
+#define XF86XK_Favorites           0x1008FF30
+#define XF86XK_AudioPause          0x1008FF31
+#define XF86XK_AudioMedia          0x1008FF32
+#define XF86XK_MyComputer          0x1008FF33
+#define XF86XK_LightBulb           0x1008FF35
+#define XF86XK_Shop                0x1008FF36
+#define XF86XK_History             0x1008FF37
+#define XF86XK_OpenURL             0x1008FF38
+#define XF86XK_AddFavorite         0x1008FF39
+#define XF86XK_HotLinks            0x1008FF3A
+#define XF86XK_BrightnessAdjust    0x1008FF3B
+#define XF86XK_Finance             0x1008FF3C
+#define XF86XK_Community           0x1008FF3D
+#define XF86XK_AudioRewind         0x1008FF3E
+#define XF86XK_BackForward         0x1008FF3F
+#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
+#define XF86XK_ApplicationLeft     0x1008FF50
+#define XF86XK_ApplicationRight    0x1008FF51
+#define XF86XK_Book                0x1008FF52
+#define XF86XK_CD                  0x1008FF53
+#define XF86XK_Calculater          0x1008FF54
+#define XF86XK_Clear               0x1008FF55
+#define XF86XK_ClearGrab           0x1008FE21
+#define XF86XK_Close               0x1008FF56
+#define XF86XK_Copy                0x1008FF57
+#define XF86XK_Cut                 0x1008FF58
+#define XF86XK_Display             0x1008FF59
+#define XF86XK_DOS                 0x1008FF5A
+#define XF86XK_Documents           0x1008FF5B
+#define XF86XK_Excel               0x1008FF5C
+#define XF86XK_Explorer            0x1008FF5D
+#define XF86XK_Game                0x1008FF5E
+#define XF86XK_Go                  0x1008FF5F
+#define XF86XK_iTouch              0x1008FF60
+#define XF86XK_LogOff              0x1008FF61
+#define XF86XK_Market              0x1008FF62
+#define XF86XK_Meeting             0x1008FF63
+#define XF86XK_MenuKB              0x1008FF65
+#define XF86XK_MenuPB              0x1008FF66
+#define XF86XK_MySites             0x1008FF67
+#define XF86XK_News                0x1008FF69
+#define XF86XK_OfficeHome          0x1008FF6A
+#define XF86XK_Option              0x1008FF6C
+#define XF86XK_Paste               0x1008FF6D
+#define XF86XK_Phone               0x1008FF6E
+#define XF86XK_Reply               0x1008FF72
+#define XF86XK_Reload              0x1008FF73
+#define XF86XK_RotateWindows       0x1008FF74
+#define XF86XK_RotationPB          0x1008FF75
+#define XF86XK_RotationKB          0x1008FF76
+#define XF86XK_Save                0x1008FF77
+#define XF86XK_Send                0x1008FF7B
+#define XF86XK_Spell               0x1008FF7C
+#define XF86XK_SplitScreen         0x1008FF7D
+#define XF86XK_Support             0x1008FF7E
+#define XF86XK_TaskPane            0x1008FF7F
+#define XF86XK_Terminal            0x1008FF80
+#define XF86XK_Tools               0x1008FF81
+#define XF86XK_Travel              0x1008FF82
+#define XF86XK_Video               0x1008FF87
+#define XF86XK_Word                0x1008FF89
+#define XF86XK_Xfer                0x1008FF8A
+#define XF86XK_ZoomIn              0x1008FF8B
+#define XF86XK_ZoomOut             0x1008FF8C
+#define XF86XK_Away                0x1008FF8D
+#define XF86XK_Messenger           0x1008FF8E
+#define XF86XK_WebCam              0x1008FF8F
+#define XF86XK_MailForward         0x1008FF90
+#define XF86XK_Pictures            0x1008FF91
+#define XF86XK_Music               0x1008FF92
+#define XF86XK_Battery             0x1008FF93
+#define XF86XK_Bluetooth           0x1008FF94
+#define XF86XK_WLAN                0x1008FF95
+#define XF86XK_UWB                 0x1008FF96
+#define XF86XK_AudioForward        0x1008FF97
+#define XF86XK_AudioRepeat         0x1008FF98
+#define XF86XK_AudioRandomPlay     0x1008FF99
+#define XF86XK_Subtitle            0x1008FF9A
+#define XF86XK_AudioCycleTrack     0x1008FF9B
+#define XF86XK_Time                0x1008FF9F
+#define XF86XK_Select              0x1008FFA0
+#define XF86XK_View                0x1008FFA1
+#define XF86XK_TopMenu             0x1008FFA2
+#define XF86XK_Suspend             0x1008FFA7
+#define XF86XK_Hibernate           0x1008FFA8
+
+
 // end of XF86keysyms.h
 
 // Special keys used by Qtopia, mapped into the X11 private keypad range.
@@ -942,10 +1039,8 @@ static const unsigned int KeyTbl[] = {
     XK_dead_hook,               Qt::Key_Dead_Hook,
     XK_dead_horn,               Qt::Key_Dead_Horn,
 
-    // Special multimedia keys
-    // currently only tested with MS internet keyboard
-
-    // browsing keys
+    // Special keys from X.org - This include multimedia keys,
+	// wireless/bluetooth/uwb keys, special launcher keys, etc.
     XF86XK_Back,                Qt::Key_Back,
     XF86XK_Forward,             Qt::Key_Forward,
     XF86XK_Stop,                Qt::Key_Stop,
@@ -955,8 +1050,6 @@ static const unsigned int KeyTbl[] = {
     XF86XK_OpenURL,             Qt::Key_OpenUrl,
     XF86XK_HomePage,            Qt::Key_HomePage,
     XF86XK_Search,              Qt::Key_Search,
-
-    // media keys
     XF86XK_AudioLowerVolume,    Qt::Key_VolumeDown,
     XF86XK_AudioMute,           Qt::Key_VolumeMute,
     XF86XK_AudioRaiseVolume,    Qt::Key_VolumeUp,
@@ -965,13 +1058,106 @@ static const unsigned int KeyTbl[] = {
     XF86XK_AudioPrev,           Qt::Key_MediaPrevious,
     XF86XK_AudioNext,           Qt::Key_MediaNext,
     XF86XK_AudioRecord,         Qt::Key_MediaRecord,
-
-    // launch keys
     XF86XK_Mail,                Qt::Key_LaunchMail,
     XF86XK_MyComputer,          Qt::Key_Launch0,
-    XF86XK_Calculator,          Qt::Key_Launch1,
+    XF86XK_Calculator,          Qt::Key_Calculator,
+    XF86XK_Memo,                Qt::Key_Memo,
+    XF86XK_ToDoList,            Qt::Key_ToDoList,
+    XF86XK_Calendar,            Qt::Key_Calendar,
+    XF86XK_PowerDown,           Qt::Key_PowerDown,
+    XF86XK_ContrastAdjust,      Qt::Key_ContrastAdjust,
     XF86XK_Standby,             Qt::Key_Standby,
-
+    XF86XK_MonBrightnessUp,     Qt::Key_MonBrightnessUp,
+    XF86XK_MonBrightnessDown,   Qt::Key_MonBrightnessDown,
+    XF86XK_KbdLightOnOff,       Qt::Key_KeyboardLightOnOff,
+    XF86XK_KbdBrightnessUp,     Qt::Key_KeyboardBrightnessUp,
+    XF86XK_KbdBrightnessDown,   Qt::Key_KeyboardBrightnessDown,
+    XF86XK_PowerOff,            Qt::Key_PowerOff,
+    XF86XK_WakeUp,              Qt::Key_WakeUp,
+    XF86XK_Eject,               Qt::Key_Eject,
+    XF86XK_ScreenSaver,         Qt::Key_ScreenSaver,
+    XF86XK_WWW,                 Qt::Key_WWW,
+    XF86XK_Sleep,               Qt::Key_Sleep,
+    XF86XK_LightBulb,           Qt::Key_LightBulb,
+    XF86XK_Shop,                Qt::Key_Shop,
+    XF86XK_History,             Qt::Key_History,
+    XF86XK_AddFavorite,         Qt::Key_AddFavorite,
+    XF86XK_HotLinks,            Qt::Key_HotLinks,
+    XF86XK_BrightnessAdjust,    Qt::Key_BrightnessAdjust,
+    XF86XK_Finance,             Qt::Key_Finance,
+    XF86XK_Community,           Qt::Key_Community,
+    XF86XK_AudioRewind,         Qt::Key_AudioRewind,
+    XF86XK_BackForward,         Qt::Key_BackForward,
+    XF86XK_ApplicationLeft,     Qt::Key_ApplicationLeft,
+    XF86XK_ApplicationRight,    Qt::Key_ApplicationRight,
+    XF86XK_Book,                Qt::Key_Book,
+    XF86XK_CD,                  Qt::Key_CD,
+    XF86XK_Calculater,          Qt::Key_Calculator,
+    XF86XK_Clear,               Qt::Key_Clear,
+    XF86XK_ClearGrab,           Qt::Key_ClearGrab,
+    XF86XK_Close,               Qt::Key_Close,
+    XF86XK_Copy,                Qt::Key_Copy,
+    XF86XK_Cut,                 Qt::Key_Cut,
+    XF86XK_Display,             Qt::Key_Display,
+    XF86XK_DOS,                 Qt::Key_DOS,
+    XF86XK_Documents,           Qt::Key_Documents,
+    XF86XK_Excel,               Qt::Key_Excel,
+    XF86XK_Explorer,            Qt::Key_Explorer,
+    XF86XK_Game,                Qt::Key_Game,
+    XF86XK_Go,                  Qt::Key_Go,
+    XF86XK_iTouch,              Qt::Key_iTouch,
+    XF86XK_LogOff,              Qt::Key_LogOff,
+    XF86XK_Market,              Qt::Key_Market,
+    XF86XK_Meeting,             Qt::Key_Meeting,
+    XF86XK_MenuKB,              Qt::Key_MenuKB,
+    XF86XK_MenuPB,              Qt::Key_MenuPB,
+    XF86XK_MySites,             Qt::Key_MySites,
+    XF86XK_News,                Qt::Key_News,
+    XF86XK_OfficeHome,          Qt::Key_OfficeHome,
+    XF86XK_Option,              Qt::Key_Option,
+    XF86XK_Paste,               Qt::Key_Paste,
+    XF86XK_Phone,               Qt::Key_Phone,
+    XF86XK_Reply,               Qt::Key_Reply,
+    XF86XK_Reload,              Qt::Key_Reload,
+    XF86XK_RotateWindows,       Qt::Key_RotateWindows,
+    XF86XK_RotationPB,          Qt::Key_RotationPB,
+    XF86XK_RotationKB,          Qt::Key_RotationKB,
+    XF86XK_Save,                Qt::Key_Save,
+    XF86XK_Send,                Qt::Key_Send,
+    XF86XK_Spell,               Qt::Key_Spell,
+    XF86XK_SplitScreen,         Qt::Key_SplitScreen,
+    XF86XK_Support,             Qt::Key_Support,
+    XF86XK_TaskPane,            Qt::Key_TaskPane,
+    XF86XK_Terminal,            Qt::Key_Terminal,
+    XF86XK_Tools,               Qt::Key_Tools,
+    XF86XK_Travel,              Qt::Key_Travel,
+    XF86XK_Video,               Qt::Key_Video,
+    XF86XK_Word,                Qt::Key_Word,
+    XF86XK_Xfer,                Qt::Key_Xfer,
+    XF86XK_ZoomIn,              Qt::Key_ZoomIn,
+    XF86XK_ZoomOut,             Qt::Key_ZoomOut,
+    XF86XK_Away,                Qt::Key_Away,
+    XF86XK_Messenger,           Qt::Key_Messenger,
+    XF86XK_WebCam,              Qt::Key_WebCam,
+    XF86XK_MailForward,         Qt::Key_MailForward,
+    XF86XK_Pictures,            Qt::Key_Pictures,
+    XF86XK_Music,               Qt::Key_Music,
+    XF86XK_Battery,             Qt::Key_Battery,
+    XF86XK_Bluetooth,           Qt::Key_Bluetooth,
+    XF86XK_WLAN,                Qt::Key_WLAN,
+    XF86XK_UWB,                 Qt::Key_UWB,
+    XF86XK_AudioForward,        Qt::Key_AudioForward,
+    XF86XK_AudioRepeat,         Qt::Key_AudioRepeat,
+    XF86XK_AudioRandomPlay,     Qt::Key_AudioRandomPlay,
+    XF86XK_Subtitle,            Qt::Key_Subtitle,
+    XF86XK_AudioCycleTrack,     Qt::Key_AudioCycleTrack,
+    XF86XK_Time,                Qt::Key_Time,
+    XF86XK_Select,              Qt::Key_Select,
+    XF86XK_View,                Qt::Key_View,
+    XF86XK_TopMenu,             Qt::Key_TopMenu,
+    XF86XK_Bluetooth,           Qt::Key_Bluetooth,
+    XF86XK_Suspend,             Qt::Key_Suspend,
+    XF86XK_Hibernate,           Qt::Key_Hibernate,
     XF86XK_Launch0,             Qt::Key_Launch2,
     XF86XK_Launch1,             Qt::Key_Launch3,
     XF86XK_Launch2,             Qt::Key_Launch4,
diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp
index 894f663..665c058 100644
--- a/src/gui/kernel/qkeysequence.cpp
+++ b/src/gui/kernel/qkeysequence.cpp
@@ -396,47 +396,139 @@ static const struct {
     { Qt::Key_Menu,         QT_TRANSLATE_NOOP("QShortcut", "Menu") },
     { Qt::Key_Help,         QT_TRANSLATE_NOOP("QShortcut", "Help") },
 
-    // Multimedia keys
-    { Qt::Key_Back,         QT_TRANSLATE_NOOP("QShortcut", "Back") },
-    { Qt::Key_Forward,      QT_TRANSLATE_NOOP("QShortcut", "Forward") },
-    { Qt::Key_Stop,         QT_TRANSLATE_NOOP("QShortcut", "Stop") },
-    { Qt::Key_Refresh,      QT_TRANSLATE_NOOP("QShortcut", "Refresh") },
-    { Qt::Key_VolumeDown,   QT_TRANSLATE_NOOP("QShortcut", "Volume Down") },
-    { Qt::Key_VolumeMute,   QT_TRANSLATE_NOOP("QShortcut", "Volume Mute") },
-    { Qt::Key_VolumeUp,     QT_TRANSLATE_NOOP("QShortcut", "Volume Up") },
-    { Qt::Key_BassBoost,    QT_TRANSLATE_NOOP("QShortcut", "Bass Boost") },
-    { Qt::Key_BassUp,       QT_TRANSLATE_NOOP("QShortcut", "Bass Up") },
-    { Qt::Key_BassDown,     QT_TRANSLATE_NOOP("QShortcut", "Bass Down") },
-    { Qt::Key_TrebleUp,     QT_TRANSLATE_NOOP("QShortcut", "Treble Up") },
-    { Qt::Key_TrebleDown,   QT_TRANSLATE_NOOP("QShortcut", "Treble Down") },
-    { Qt::Key_MediaPlay,    QT_TRANSLATE_NOOP("QShortcut", "Media Play") },
-    { Qt::Key_MediaStop,    QT_TRANSLATE_NOOP("QShortcut", "Media Stop") },
-    { Qt::Key_MediaPrevious,QT_TRANSLATE_NOOP("QShortcut", "Media Previous") },
-    { Qt::Key_MediaNext,    QT_TRANSLATE_NOOP("QShortcut", "Media Next") },
-    { Qt::Key_MediaRecord,  QT_TRANSLATE_NOOP("QShortcut", "Media Record") },
-    { Qt::Key_HomePage,     QT_TRANSLATE_NOOP("QShortcut", "Home Page") },
-    { Qt::Key_Favorites,    QT_TRANSLATE_NOOP("QShortcut", "Favorites") },
-    { Qt::Key_Search,       QT_TRANSLATE_NOOP("QShortcut", "Search") },
-    { Qt::Key_Standby,      QT_TRANSLATE_NOOP("QShortcut", "Standby") },
-    { Qt::Key_OpenUrl,      QT_TRANSLATE_NOOP("QShortcut", "Open URL") },
-    { Qt::Key_LaunchMail,   QT_TRANSLATE_NOOP("QShortcut", "Launch Mail") },
-    { Qt::Key_LaunchMedia,  QT_TRANSLATE_NOOP("QShortcut", "Launch Media") },
-    { Qt::Key_Launch0,      QT_TRANSLATE_NOOP("QShortcut", "Launch (0)") },
-    { Qt::Key_Launch1,      QT_TRANSLATE_NOOP("QShortcut", "Launch (1)") },
-    { Qt::Key_Launch2,      QT_TRANSLATE_NOOP("QShortcut", "Launch (2)") },
-    { Qt::Key_Launch3,      QT_TRANSLATE_NOOP("QShortcut", "Launch (3)") },
-    { Qt::Key_Launch4,      QT_TRANSLATE_NOOP("QShortcut", "Launch (4)") },
-    { Qt::Key_Launch5,      QT_TRANSLATE_NOOP("QShortcut", "Launch (5)") },
-    { Qt::Key_Launch6,      QT_TRANSLATE_NOOP("QShortcut", "Launch (6)") },
-    { Qt::Key_Launch7,      QT_TRANSLATE_NOOP("QShortcut", "Launch (7)") },
-    { Qt::Key_Launch8,      QT_TRANSLATE_NOOP("QShortcut", "Launch (8)") },
-    { Qt::Key_Launch9,      QT_TRANSLATE_NOOP("QShortcut", "Launch (9)") },
-    { Qt::Key_LaunchA,      QT_TRANSLATE_NOOP("QShortcut", "Launch (A)") },
-    { Qt::Key_LaunchB,      QT_TRANSLATE_NOOP("QShortcut", "Launch (B)") },
-    { Qt::Key_LaunchC,      QT_TRANSLATE_NOOP("QShortcut", "Launch (C)") },
-    { Qt::Key_LaunchD,      QT_TRANSLATE_NOOP("QShortcut", "Launch (D)") },
-    { Qt::Key_LaunchE,      QT_TRANSLATE_NOOP("QShortcut", "Launch (E)") },
-    { Qt::Key_LaunchF,      QT_TRANSLATE_NOOP("QShortcut", "Launch (F)") },
+    // Special keys
+    // Includes multimedia, launcher, lan keys ( bluetooth, wireless )
+    // window navigation
+    { Qt::Key_Back,                       QT_TRANSLATE_NOOP("QShortcut", "Back") },
+    { Qt::Key_Forward,                    QT_TRANSLATE_NOOP("QShortcut", "Forward") },
+    { Qt::Key_Stop,                       QT_TRANSLATE_NOOP("QShortcut", "Stop") },
+    { Qt::Key_Refresh,                    QT_TRANSLATE_NOOP("QShortcut", "Refresh") },
+    { Qt::Key_VolumeDown,                 QT_TRANSLATE_NOOP("QShortcut", "Volume Down") },
+    { Qt::Key_VolumeMute,                 QT_TRANSLATE_NOOP("QShortcut", "Volume Mute") },
+    { Qt::Key_VolumeUp,                   QT_TRANSLATE_NOOP("QShortcut", "Volume Up") },
+    { Qt::Key_BassBoost,                  QT_TRANSLATE_NOOP("QShortcut", "Bass Boost") },
+    { Qt::Key_BassUp,                     QT_TRANSLATE_NOOP("QShortcut", "Bass Up") },
+    { Qt::Key_BassDown,                   QT_TRANSLATE_NOOP("QShortcut", "Bass Down") },
+    { Qt::Key_TrebleUp,                   QT_TRANSLATE_NOOP("QShortcut", "Treble Up") },
+    { Qt::Key_TrebleDown,                 QT_TRANSLATE_NOOP("QShortcut", "Treble Down") },
+    { Qt::Key_MediaPlay,                  QT_TRANSLATE_NOOP("QShortcut", "Media Play") },
+    { Qt::Key_MediaStop,                  QT_TRANSLATE_NOOP("QShortcut", "Media Stop") },
+    { Qt::Key_MediaPrevious,              QT_TRANSLATE_NOOP("QShortcut", "Media Previous") },
+    { Qt::Key_MediaNext,                  QT_TRANSLATE_NOOP("QShortcut", "Media Next") },
+    { Qt::Key_MediaRecord,                QT_TRANSLATE_NOOP("QShortcut", "Media Record") },
+    { Qt::Key_HomePage,                   QT_TRANSLATE_NOOP("QShortcut", "Home Page") },
+    { Qt::Key_Favorites,                  QT_TRANSLATE_NOOP("QShortcut", "Favorites") },
+    { Qt::Key_Search,                     QT_TRANSLATE_NOOP("QShortcut", "Search") },
+    { Qt::Key_Standby,                    QT_TRANSLATE_NOOP("QShortcut", "Standby") },
+    { Qt::Key_OpenUrl,                    QT_TRANSLATE_NOOP("QShortcut", "Open URL") },
+    { Qt::Key_LaunchMail,                 QT_TRANSLATE_NOOP("QShortcut", "Launch Mail") },
+    { Qt::Key_LaunchMedia,                QT_TRANSLATE_NOOP("QShortcut", "Launch Media") },
+    { Qt::Key_Launch0,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (0)") },
+    { Qt::Key_Launch1,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (1)") },
+    { Qt::Key_Launch2,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (2)") },
+    { Qt::Key_Launch3,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (3)") },
+    { Qt::Key_Launch4,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (4)") },
+    { Qt::Key_Launch5,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (5)") },
+    { Qt::Key_Launch6,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (6)") },
+    { Qt::Key_Launch7,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (7)") },
+    { Qt::Key_Launch8,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (8)") },
+    { Qt::Key_Launch9,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (9)") },
+    { Qt::Key_LaunchA,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (A)") },
+    { Qt::Key_LaunchB,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (B)") },
+    { Qt::Key_LaunchC,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (C)") },
+    { Qt::Key_LaunchD,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (D)") },
+    { Qt::Key_LaunchE,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (E)") },
+    { Qt::Key_LaunchF,                    QT_TRANSLATE_NOOP("QShortcut", "Launch (F)") },
+    { Qt::Key_MonBrightnessUp,            QT_TRANSLATE_NOOP("QShortcut", "Monitor Brightness Up") },
+    { Qt::Key_MonBrightnessDown,          QT_TRANSLATE_NOOP("QShortcut", "Monitor Brightness Down") },
+    { Qt::Key_KeyboardLightOnOff,         QT_TRANSLATE_NOOP("QShortcut", "Keyboard Light On/Off") },
+    { Qt::Key_KeyboardBrightnessUp,       QT_TRANSLATE_NOOP("QShortcut", "Keyboard Brightness Up") },
+    { Qt::Key_KeyboardBrightnessDown,     QT_TRANSLATE_NOOP("QShortcut", "Keyboard Brightness Down") },
+    { Qt::Key_PowerOff,                   QT_TRANSLATE_NOOP("QShortcut", "Power Off") },
+    { Qt::Key_WakeUp,                     QT_TRANSLATE_NOOP("QShortcut", "Wake Up") },
+    { Qt::Key_Eject,                      QT_TRANSLATE_NOOP("QShortcut", "Eject") },
+    { Qt::Key_ScreenSaver,                QT_TRANSLATE_NOOP("QShortcut", "Screensaver") },
+    { Qt::Key_WWW,                        QT_TRANSLATE_NOOP("QShortcut", "WWW") },
+    { Qt::Key_Sleep,                      QT_TRANSLATE_NOOP("QShortcut", "Sleep") },
+    { Qt::Key_LightBulb,                  QT_TRANSLATE_NOOP("QShortcut", "LightBulb") },
+    { Qt::Key_Shop,                       QT_TRANSLATE_NOOP("QShortcut", "Shop") },
+    { Qt::Key_History,                    QT_TRANSLATE_NOOP("QShortcut", "History") },
+    { Qt::Key_AddFavorite,                QT_TRANSLATE_NOOP("QShortcut", "Add Favorite") },
+    { Qt::Key_HotLinks,                   QT_TRANSLATE_NOOP("QShortcut", "Hot Links") },
+    { Qt::Key_BrightnessAdjust,           QT_TRANSLATE_NOOP("QShortcut", "Adjust Brightness") },
+    { Qt::Key_Finance,                    QT_TRANSLATE_NOOP("QShortcut", "Finance") },
+    { Qt::Key_Community,                  QT_TRANSLATE_NOOP("QShortcut", "Community") },
+    { Qt::Key_AudioRewind,                QT_TRANSLATE_NOOP("QShortcut", "Audio Rewind") },
+    { Qt::Key_BackForward,                QT_TRANSLATE_NOOP("QShortcut", "Back Forward") },
+    { Qt::Key_ApplicationLeft,            QT_TRANSLATE_NOOP("QShortcut", "Application Left") },
+    { Qt::Key_ApplicationRight,           QT_TRANSLATE_NOOP("QShortcut", "Application Right") },
+    { Qt::Key_Book,                       QT_TRANSLATE_NOOP("QShortcut", "Book") },
+    { Qt::Key_CD,                         QT_TRANSLATE_NOOP("QShortcut", "CD") },
+    { Qt::Key_Calculator,                 QT_TRANSLATE_NOOP("QShortcut", "Calculator") },
+    { Qt::Key_Clear,                      QT_TRANSLATE_NOOP("QShortcut", "Clear") },
+    { Qt::Key_ClearGrab,                  QT_TRANSLATE_NOOP("QShortcut", "Clear Grab") },
+    { Qt::Key_Close,                      QT_TRANSLATE_NOOP("QShortcut", "Close") },
+    { Qt::Key_Copy,                       QT_TRANSLATE_NOOP("QShortcut", "Copy") },
+    { Qt::Key_Cut,                        QT_TRANSLATE_NOOP("QShortcut", "Cut") },
+    { Qt::Key_Display,                    QT_TRANSLATE_NOOP("QShortcut", "Display") },
+    { Qt::Key_DOS,                        QT_TRANSLATE_NOOP("QShortcut", "DOS") },
+    { Qt::Key_Documents,                  QT_TRANSLATE_NOOP("QShortcut", "Documents") },
+    { Qt::Key_Excel,                      QT_TRANSLATE_NOOP("QShortcut", "Spreadsheet") },
+    { Qt::Key_Explorer,                   QT_TRANSLATE_NOOP("QShortcut", "Browser") },
+    { Qt::Key_Game,                       QT_TRANSLATE_NOOP("QShortcut", "Game") },
+    { Qt::Key_Go,                         QT_TRANSLATE_NOOP("QShortcut", "Go") },
+    { Qt::Key_iTouch,                     QT_TRANSLATE_NOOP("QShortcut", "iTouch") },
+    { Qt::Key_LogOff,                     QT_TRANSLATE_NOOP("QShortcut", "Logoff") },
+    { Qt::Key_Market,                     QT_TRANSLATE_NOOP("QShortcut", "Market") },
+    { Qt::Key_Meeting,                    QT_TRANSLATE_NOOP("QShortcut", "Meeting") },
+    { Qt::Key_MenuKB,                     QT_TRANSLATE_NOOP("QShortcut", "Keyboard Menu") },
+    { Qt::Key_MenuPB,                     QT_TRANSLATE_NOOP("QShortcut", "Menu PB") },
+    { Qt::Key_MySites,                    QT_TRANSLATE_NOOP("QShortcut", "My Sites") },
+    { Qt::Key_News,                       QT_TRANSLATE_NOOP("QShortcut", "News") },
+    { Qt::Key_OfficeHome,                 QT_TRANSLATE_NOOP("QShortcut", "Home Office") },
+    { Qt::Key_Option,                     QT_TRANSLATE_NOOP("QShortcut", "Option") },
+    { Qt::Key_Paste,                      QT_TRANSLATE_NOOP("QShortcut", "Paste") },
+    { Qt::Key_Phone,                      QT_TRANSLATE_NOOP("QShortcut", "Phone") },
+    { Qt::Key_Reply,                      QT_TRANSLATE_NOOP("QShortcut", "Reply") },
+    { Qt::Key_Reload,                     QT_TRANSLATE_NOOP("QShortcut", "Reload") },
+    { Qt::Key_RotateWindows,              QT_TRANSLATE_NOOP("QShortcut", "Rotate Windows") },
+    { Qt::Key_RotationPB,                 QT_TRANSLATE_NOOP("QShortcut", "Rotation PB") },
+    { Qt::Key_RotationKB,                 QT_TRANSLATE_NOOP("QShortcut", "Rotation KB") },
+    { Qt::Key_Save,                       QT_TRANSLATE_NOOP("QShortcut", "Save") },
+    { Qt::Key_Send,                       QT_TRANSLATE_NOOP("QShortcut", "Send") },
+    { Qt::Key_Spell,                      QT_TRANSLATE_NOOP("QShortcut", "Spellchecker") },
+    { Qt::Key_SplitScreen,                QT_TRANSLATE_NOOP("QShortcut", "Split Screen") },
+    { Qt::Key_Support,                    QT_TRANSLATE_NOOP("QShortcut", "Support") },
+    { Qt::Key_TaskPane,                   QT_TRANSLATE_NOOP("QShortcut", "Task Panel") },
+    { Qt::Key_Terminal,                   QT_TRANSLATE_NOOP("QShortcut", "Terminal") },
+    { Qt::Key_Tools,                      QT_TRANSLATE_NOOP("QShortcut", "Tools") },
+    { Qt::Key_Travel,                     QT_TRANSLATE_NOOP("QShortcut", "Travel") },
+    { Qt::Key_Video,                      QT_TRANSLATE_NOOP("QShortcut", "Video") },
+    { Qt::Key_Word,                       QT_TRANSLATE_NOOP("QShortcut", "Word Processor") },
+    { Qt::Key_Xfer,                       QT_TRANSLATE_NOOP("QShortcut", "XFer") },
+    { Qt::Key_ZoomIn,                     QT_TRANSLATE_NOOP("QShortcut", "Zoom In") },
+    { Qt::Key_ZoomOut,                    QT_TRANSLATE_NOOP("QShortcut", "Zoom Out") },
+    { Qt::Key_Away,                       QT_TRANSLATE_NOOP("QShortcut", "Away") },
+    { Qt::Key_Messenger,                  QT_TRANSLATE_NOOP("QShortcut", "Messenger") },
+    { Qt::Key_WebCam,                     QT_TRANSLATE_NOOP("QShortcut", "WebCam") },
+    { Qt::Key_MailForward,                QT_TRANSLATE_NOOP("QShortcut", "Mail Forward") },
+    { Qt::Key_Pictures,                   QT_TRANSLATE_NOOP("QShortcut", "Pictures") },
+    { Qt::Key_Music,                      QT_TRANSLATE_NOOP("QShortcut", "Music") },
+    { Qt::Key_Battery,                    QT_TRANSLATE_NOOP("QShortcut", "Battery") },
+    { Qt::Key_Bluetooth,                  QT_TRANSLATE_NOOP("QShortcut", "Bluetooth") },
+    { Qt::Key_WLAN,                       QT_TRANSLATE_NOOP("QShortcut", "Wireless") },
+    { Qt::Key_UWB,                        QT_TRANSLATE_NOOP("QShortcut", "Ultra Wide Band") },
+    { Qt::Key_AudioForward,               QT_TRANSLATE_NOOP("QShortcut", "Audio Forward") },
+    { Qt::Key_AudioRepeat,                QT_TRANSLATE_NOOP("QShortcut", "Audio Repeat") },
+    { Qt::Key_AudioRandomPlay,            QT_TRANSLATE_NOOP("QShortcut", "Audio Random Play") },
+    { Qt::Key_Subtitle,                   QT_TRANSLATE_NOOP("QShortcut", "Subtitle") },
+    { Qt::Key_AudioCycleTrack,            QT_TRANSLATE_NOOP("QShortcut", "Audio Cycle Track") },
+    { Qt::Key_Time,                       QT_TRANSLATE_NOOP("QShortcut", "Time") },
+    { Qt::Key_Select,                     QT_TRANSLATE_NOOP("QShortcut", "Select") },
+    { Qt::Key_View,                       QT_TRANSLATE_NOOP("QShortcut", "View") },
+    { Qt::Key_TopMenu,                    QT_TRANSLATE_NOOP("QShortcut", "Top Menu") },
+    { Qt::Key_Suspend,                    QT_TRANSLATE_NOOP("QShortcut", "Suspend") },
+    { Qt::Key_Hibernate,                  QT_TRANSLATE_NOOP("QShortcut", "Hibernate") },
 
     // --------------------------------------------------------------
     // More consistent namings
-- 
1.6.2.5