--- src.orig/Browser/WebCore/platform/ekioh/KeyEventEkioh.cpp
+++ src/Browser/WebCore/platform/ekioh/KeyEventEkioh.cpp
@@ -46,50 +46,185 @@
 
     switch (event.getVirtual())
     {
-        case DOM_VK_ALT:           return "Alt";
-        case DOM_VK_DELETE:        return "U+007F";
-        case DOM_VK_END:           return "End";
-        case DOM_VK_RETURN:
-        case DOM_VK_ENTER:         return "Enter";
-        case DOM_VK_HOME:          return "Home";
-        case DOM_VK_INSERT:        return "Insert";
-        case DOM_VK_PAUSE:         return "Pause";
-        case DOM_VK_PRINTSCREEN:   return "PrintScreen";
-        case DOM_VK_SCROLL_LOCK:   return "Scroll";
-        case DOM_VK_LEFT:          return "Left";
-        case DOM_VK_RIGHT:         return "Right";
-        case DOM_VK_UP:            return "Up";
-        case DOM_VK_DOWN:          return "Down";
-        case DOM_VK_PAGE_DOWN:     return "PageDown";
-        case DOM_VK_PAGE_UP:       return "PageUp";
-        case DOM_VK_F1:            return "F1";
-        case DOM_VK_F2:            return "F2";
-        case DOM_VK_F3:            return "F3";
-        case DOM_VK_F4:            return "F4";
-        case DOM_VK_F5:            return "F5";
-        case DOM_VK_F6:            return "F6";
-        case DOM_VK_F7:            return "F7";
-        case DOM_VK_F8:            return "F8";
-        case DOM_VK_F9:            return "F9";
-        case DOM_VK_F10:           return "F10";
-        case DOM_VK_F11:           return "F11";
-        case DOM_VK_F12:           return "F12";
-        case DOM_VK_F13:           return "F13";
-        case DOM_VK_F14:           return "F14";
-        case DOM_VK_F15:           return "F15";
-        case DOM_VK_F16:           return "F16";
-        case DOM_VK_F17:           return "F17";
-        case DOM_VK_F18:           return "F18";
-        case DOM_VK_F19:           return "F19";
-        case DOM_VK_F20:           return "F20";
-        case DOM_VK_F21:           return "F21";
-        case DOM_VK_F22:           return "F22";
-        case DOM_VK_F23:           return "F23";
-        case DOM_VK_F24:           return "F24";
-                                   //case DOM_VK_BACK_SPACE:    translatedKey = (TranslatedKey) 0x08; break;
-                                   //case DOM_VK_ESCAPE:        translatedKey = (TranslatedKey) 0x1b; break;
-                                   //case DOM_VK_TAB:           translatedKey = (TranslatedKey) 0x09; break;
-        default:                   break;
+        case DOM_VK_CANCEL:     return "U+0018";
+        case DOM_VK_HELP:       return "Help";
+        case DOM_VK_BACK_SPACE: return "U+0008";
+        case DOM_VK_TAB:        return "U+0009";
+        case DOM_VK_CLEAR:      return "U+000c";
+        case DOM_VK_RETURN:     return "Enter";
+        case DOM_VK_ENTER:      return "Enter";
+        case DOM_VK_SHIFT:      return "Shift";
+        case DOM_VK_CONTROL:    return "Control";
+        case DOM_VK_ALT:        return "Alt";
+        case DOM_VK_PAUSE:      return "Pause";
+        case DOM_VK_CAPS_LOCK:  return "CapsLock";
+        case DOM_VK_ESCAPE:     return "U+001B";
+        case DOM_VK_ACCEPT:     return "Accept";
+        case DOM_VK_SPACE:      return "U+0020";
+        case DOM_VK_PAGE_UP:    return "PageUp";
+        case DOM_VK_PAGE_DOWN:  return "PageDown";
+        case DOM_VK_END:        return "End";
+        case DOM_VK_HOME:       return "Home";
+        case DOM_VK_LEFT:       return "Left";
+        case DOM_VK_UP:         return "Up";
+        case DOM_VK_RIGHT:      return "Right";
+        case DOM_VK_DOWN:       return "Down";
+        case DOM_VK_PRINTSCREEN:return "PrintScreen";
+        case DOM_VK_INSERT:     return "Insert";
+        case DOM_VK_DELETE:     return "U+007F";
+        case DOM_VK_0:          return "U+0030";
+        case DOM_VK_1:          return "U+0031";
+        case DOM_VK_2:          return "U+0032";
+        case DOM_VK_3:          return "U+0033";
+        case DOM_VK_4:          return "U+0034";
+        case DOM_VK_5:          return "U+0035";
+        case DOM_VK_6:          return "U+0036";
+        case DOM_VK_7:          return "U+0037";
+        case DOM_VK_8:          return "U+0038";
+        case DOM_VK_9:          return "U+0039";
+        case DOM_VK_A:          return "U+0041";
+        case DOM_VK_B:          return "U+0042";
+        case DOM_VK_C:          return "U+0043";
+        case DOM_VK_D:          return "U+0044";
+        case DOM_VK_E:          return "U+0045";
+        case DOM_VK_F:          return "U+0046";
+        case DOM_VK_G:          return "U+0047";
+        case DOM_VK_H:          return "U+0048";
+        case DOM_VK_I:          return "U+0049";
+        case DOM_VK_J:          return "U+004A";
+        case DOM_VK_K:          return "U+004B";
+        case DOM_VK_L:          return "U+004C";
+        case DOM_VK_M:          return "U+004D";
+        case DOM_VK_N:          return "U+004E";
+        case DOM_VK_O:          return "U+004F";
+        case DOM_VK_P:          return "U+0050";
+        case DOM_VK_Q:          return "U+0051";
+        case DOM_VK_R:          return "U+0052";
+        case DOM_VK_S:          return "U+0053";
+        case DOM_VK_T:          return "U+0054";
+        case DOM_VK_U:          return "U+0055";
+        case DOM_VK_V:          return "U+0056";
+        case DOM_VK_W:          return "U+0057";
+        case DOM_VK_X:          return "U+0058";
+        case DOM_VK_Y:          return "U+0059";
+        case DOM_VK_Z:          return "U+005A";
+        case DOM_VK_F1:         return "F1";
+        case DOM_VK_F2:         return "F2";
+        case DOM_VK_F3:         return "F3";
+        case DOM_VK_F4:         return "F4";
+        case DOM_VK_F5:         return "F5";
+        case DOM_VK_F6:         return "F6";
+        case DOM_VK_F7:         return "F7";
+        case DOM_VK_F8:         return "F8";
+        case DOM_VK_F9:         return "F9";
+        case DOM_VK_F10:        return "F10";
+        case DOM_VK_F11:        return "F11";
+        case DOM_VK_F12:        return "F12";
+        case DOM_VK_F13:        return "F13";
+        case DOM_VK_F14:        return "F14";
+        case DOM_VK_F15:        return "F15";
+        case DOM_VK_F16:        return "F16";
+        case DOM_VK_F17:        return "F17";
+        case DOM_VK_F18:        return "F18";
+        case DOM_VK_F19:        return "F19";
+        case DOM_VK_F20:        return "F20";
+        case DOM_VK_F21:        return "F21";
+        case DOM_VK_F22:        return "F22";
+        case DOM_VK_F23:        return "F23";
+        case DOM_VK_F24:        return "F24";
+        case DOM_VK_NUM_LOCK:   return "NumLock";
+        case DOM_VK_SCROLL_LOCK:return "Scroll";
+
+        case DOM_VK_META:       return "Meta";
+        
+        // Ekioh extended keycodes
+        case DOM_EK_RED:        return "Red";
+        case DOM_EK_GREEN:      return "Green";
+        case DOM_EK_YELLOW:     return "Yellow";
+        case DOM_EK_BLUE:       return "Blue";
+        case DOM_EK_PURPLE:     return "Purple";
+        case DOM_EK_ORANGE:     return "Orange";
+
+        // Media
+        case DOM_EK_MEDIA_PLAY:       return "MediaPlay";
+        case DOM_EK_MEDIA_PAUSE:      return "MediaPause";
+        case DOM_EK_MEDIA_STOP:       return "MediaStop";
+        case DOM_EK_MEDIA_REW:        return "MediaRewind";
+        case DOM_EK_MEDIA_FF:         return "MediaFastForward";
+        case DOM_EK_MEDIA_PREV_TRACK: return "MediaPreviousTrack";
+        case DOM_EK_MEDIA_NEXT_TRACK: return "MediaNextTrack";
+        case DOM_EK_MEDIA_REC:        return "MediaRecord";
+        case DOM_EK_MEDIA_PLAYPAUSE:  return "MediaPlayPause";
+
+        // Navigation
+        case DOM_EK_BACK:         return "BrowserBack";
+        case DOM_EK_FORWARD:      return "BrowserForward";
+        case DOM_EK_RELOAD:       return "BrowserRefresh";
+        case DOM_EK_STOP:         return "BrowserStop";
+
+        case DOM_EK_CHANNEL_UP:   return "ChannelUp";
+        case DOM_EK_CHANNEL_DOWN: return "ChannelDown";
+        case DOM_EK_TV:           return "TV";
+        case DOM_EK_MENU:         return "Menu";
+        case DOM_EK_INFO:         return "Info";
+        case DOM_EK_POWER:        return "Power";
+        case DOM_EK_POWER_ON:     return "PowerOn";
+        case DOM_EK_POWER_OFF:    return "PowerOff";
+        case DOM_EK_MULTI_DIGIT_CHAN_NUM:return "-/--";
+        case DOM_EK_BRAND:        return "Brand";
+        case DOM_EK_YES:          return "Yes";
+        case DOM_EK_NO:           return "No";
+
+        case DOM_EK_MUTE:         return "VolumeMute";
+        case DOM_EK_MUTE_ON:      return "VolumeMuteOn";
+        case DOM_EK_MUTE_OFF:     return "VolumeMuteOff";
+        case DOM_EK_VOLUME_UP:    return "VolumeUp";
+        case DOM_EK_VOLUME_DOWN:  return "VolumeDown";
+
+        // Application switching
+        case DOM_EK_EXIT:         return "Exit";
+        case DOM_EK_EPG:          return "EPG";
+        case DOM_EK_TELETEXT:     return "Teletext";
+        case DOM_EK_VOD:          return "VOD";
+        case DOM_EK_AV:           return "AV";
+        case DOM_EK_RECORD_LIST:  return "RecordList";
+        case DOM_EK_PLAY_LIST:    return "PlayList";
+        case DOM_EK_WEB:          return "Web";
+        case DOM_EK_PORTAL:       return "Portal";
+        case DOM_EK_DVR:          return "DVR";
+        case DOM_EK_CONTENT:      return "Content";
+        case DOM_EK_FAVOURITES:   return "Favourites";
+        case DOM_EK_GAMES:        return "Games";
+        case DOM_EK_MOSAIC:       return "Mosaic";
+        case DOM_EK_SERVICES:     return "Services";
+
+        // Miscellaneous
+        case DOM_EK_LANGUAGE:     return "Language";
+        case DOM_EK_ASPECT_RATIO: return "AspectRatio";
+        case DOM_EK_ZOOM:         return "Zoom";
+
+        // Handset
+        case DOM_EK_DIAL:            return "Dial";
+        case DOM_EK_KEYBOARD_EXTEND: return "KeyboardExtend";
+        case DOM_EK_SLIDER_UP:       return "SliderUp";
+        case DOM_EK_SLIDER_DOWN:     return "SliderDown";
+
+        // Screen
+        case DOM_EK_BACKLIGHT_ON:    return "BacklightOn";
+        case DOM_EK_BACKLIGHT_OFF:   return "BacklightOff";
+        case DOM_EK_BACKLIGHT_TOGGLE:return "BacklightToggle";
+        case DOM_EK_CONTRAST_UP:     return "ContrastUp";
+        case DOM_EK_CONTRAST_DOWN:   return "ContrastDown";
+        case DOM_EK_BRIGHTNESS_UP:   return "BrightnessUp";
+        case DOM_EK_BRIGHTNESS_DOWN: return "BrightnessDown";
+
+        // Dictaphone
+        case DOM_EK_DICTAPHONE_PLAY:   return "DictaphonePlay";
+        case DOM_EK_DICTAPHONE_PAUSE:  return "DictaphonePause";
+        case DOM_EK_DICTAPHONE_STOP:   return "DictaphoneStop";
+        case DOM_EK_DICTAPHONE_RECORD: return "DictaphoneRecord";
+
+        default:                       break;
     }
 
     //printf("%d %06X\n", event.keysym, toupper(event.keysym));
