diff --git a/shared/js/PPTListener.ts b/shared/js/PPTListener.ts
index 43f45330..4a4fede0 100644
--- a/shared/js/PPTListener.ts
+++ b/shared/js/PPTListener.ts
@@ -1,3 +1,123 @@
+enum KeyCode {
+ KEY_CANCEL = 3,
+ KEY_HELP = 6,
+ KEY_BACK_SPACE = 8,
+ KEY_TAB = 9,
+ KEY_CLEAR = 12,
+ KEY_RETURN = 13,
+ KEY_ENTER = 14,
+ KEY_SHIFT = 16,
+ KEY_CONTROL = 17,
+ KEY_ALT = 18,
+ KEY_PAUSE = 19,
+ KEY_CAPS_LOCK = 20,
+ KEY_ESCAPE = 27,
+ KEY_SPACE = 32,
+ KEY_PAGE_UP = 33,
+ KEY_PAGE_DOWN = 34,
+ KEY_END = 35,
+ KEY_HOME = 36,
+ KEY_LEFT = 37,
+ KEY_UP = 38,
+ KEY_RIGHT = 39,
+ KEY_DOWN = 40,
+ KEY_PRINTSCREEN = 44,
+ KEY_INSERT = 45,
+ KEY_DELETE = 46,
+ KEY_0 = 48,
+ KEY_1 = 49,
+ KEY_2 = 50,
+ KEY_3 = 51,
+ KEY_4 = 52,
+ KEY_5 = 53,
+ KEY_6 = 54,
+ KEY_7 = 55,
+ KEY_8 = 56,
+ KEY_9 = 57,
+ KEY_SEMICOLON = 59,
+ KEY_EQUALS = 61,
+ KEY_A = 65,
+ KEY_B = 66,
+ KEY_C = 67,
+ KEY_D = 68,
+ KEY_E = 69,
+ KEY_F = 70,
+ KEY_G = 71,
+ KEY_H = 72,
+ KEY_I = 73,
+ KEY_J = 74,
+ KEY_K = 75,
+ KEY_L = 76,
+ KEY_M = 77,
+ KEY_N = 78,
+ KEY_O = 79,
+ KEY_P = 80,
+ KEY_Q = 81,
+ KEY_R = 82,
+ KEY_S = 83,
+ KEY_T = 84,
+ KEY_U = 85,
+ KEY_V = 86,
+ KEY_W = 87,
+ KEY_X = 88,
+ KEY_Y = 89,
+ KEY_Z = 90,
+ KEY_LEFT_CMD = 91,
+ KEY_RIGHT_CMD = 93,
+ KEY_CONTEXT_MENU = 93,
+ KEY_NUMPAD0 = 96,
+ KEY_NUMPAD1 = 97,
+ KEY_NUMPAD2 = 98,
+ KEY_NUMPAD3 = 99,
+ KEY_NUMPAD4 = 100,
+ KEY_NUMPAD5 = 101,
+ KEY_NUMPAD6 = 102,
+ KEY_NUMPAD7 = 103,
+ KEY_NUMPAD8 = 104,
+ KEY_NUMPAD9 = 105,
+ KEY_MULTIPLY = 106,
+ KEY_ADD = 107,
+ KEY_SEPARATOR = 108,
+ KEY_SUBTRACT = 109,
+ KEY_DECIMAL = 110,
+ KEY_DIVIDE = 111,
+ KEY_F1 = 112,
+ KEY_F2 = 113,
+ KEY_F3 = 114,
+ KEY_F4 = 115,
+ KEY_F5 = 116,
+ KEY_F6 = 117,
+ KEY_F7 = 118,
+ KEY_F8 = 119,
+ KEY_F9 = 120,
+ KEY_F10 = 121,
+ KEY_F11 = 122,
+ KEY_F12 = 123,
+ KEY_F13 = 124,
+ KEY_F14 = 125,
+ KEY_F15 = 126,
+ KEY_F16 = 127,
+ KEY_F17 = 128,
+ KEY_F18 = 129,
+ KEY_F19 = 130,
+ KEY_F20 = 131,
+ KEY_F21 = 132,
+ KEY_F22 = 133,
+ KEY_F23 = 134,
+ KEY_F24 = 135,
+ KEY_NUM_LOCK = 144,
+ KEY_SCROLL_LOCK = 145,
+ KEY_COMMA = 188,
+ KEY_PERIOD = 190,
+ KEY_SLASH = 191,
+ KEY_BACK_QUOTE = 192,
+ KEY_OPEN_BRACKET = 219,
+ KEY_BACK_SLASH = 220,
+ KEY_CLOSE_BRACKET = 221,
+ KEY_QUOTE = 222,
+ KEY_META = 224
+}
+
namespace ppt {
export enum EventType {
KEY_PRESS,
diff --git a/shared/js/ui/client.ts b/shared/js/ui/client.ts
index ece25fe0..949f4a3a 100644
--- a/shared/js/ui/client.ts
+++ b/shared/js/ui/client.ts
@@ -3,6 +3,8 @@
///
///
+import KeyEvent = ppt.KeyEvent;
+
enum ClientType {
CLIENT_VOICE,
CLIENT_QUERY,
@@ -879,7 +881,7 @@ class LocalClientEntry extends ClientEntry {
_self.renaming = true;
elm.keypress(function (e) {
- if(e.keyCode == JQuery.Key.Enter) {
+ if(e.keyCode == KeyCode.KEY_ENTER) {
$(this).trigger("focusout");
return false;
}
diff --git a/shared/js/ui/elements/modal.ts b/shared/js/ui/elements/modal.ts
index 0e4b15c7..84f04f8b 100644
--- a/shared/js/ui/elements/modal.ts
+++ b/shared/js/ui/elements/modal.ts
@@ -201,7 +201,7 @@ function createInputModal(headMessage: BodyCreator, question: BodyCreator, valid
button_submit.prop("disabled", !valid);
});
input.on('keydown', event => {
- if(event.keyCode !== JQuery.Key.Enter || event.shiftKey)
+ if(event.keyCode !== KeyCode.KEY_ENTER || event.shiftKey)
return;
if(button_submit.prop("disabled"))
return;
diff --git a/shared/js/ui/frames/chat.ts b/shared/js/ui/frames/chat.ts
index 94c73b65..e9bc26de 100644
--- a/shared/js/ui/frames/chat.ts
+++ b/shared/js/ui/frames/chat.ts
@@ -373,10 +373,10 @@ class ChatBox {
this._input_message.on('keypress',event => {
if(!event.shiftKey) {
console.log(event.keyCode);
- if(event.keyCode == JQuery.Key.Enter) {
+ if(event.keyCode == KeyCode.KEY_ENTER) {
this.onSend();
return false;
- } else if(event.keyCode == JQuery.Key.ArrowUp || event.keyCode == JQuery.Key.ArrowDown) {
+ } else if(event.keyCode == KeyCode.KEY_UP || event.keyCode == KeyCode.KEY_DOWN) {
if(this._activeChat) {
const message = (this._input_message.val() || "").toString();
const history = this._activeChat.send_history;
@@ -385,7 +385,7 @@ class ChatBox {
return;
if(message.replace(/[ \n\r\t]/, "").length == 0 || this._history_index == 0 || (this._history_index > 0 && message == this._activeChat.send_history[this._history_index - 1])) {
- if(event.keyCode == JQuery.Key.ArrowUp)
+ if(event.keyCode == KeyCode.KEY_UP)
this._history_index = Math.min(history.length, this._history_index + 1);
else
this._history_index = Math.max(0, this._history_index - 1);
diff --git a/shared/js/ui/modal/ModalConnect.ts b/shared/js/ui/modal/ModalConnect.ts
index 3fde923c..fc102cc4 100644
--- a/shared/js/ui/modal/ModalConnect.ts
+++ b/shared/js/ui/modal/ModalConnect.ts
@@ -53,7 +53,7 @@ namespace Modals {
input_address
.on("keyup", () => updateFields())
.on('keydown', event => {
- if(event.keyCode == JQuery.Key.Enter && !event.shiftKey)
+ if(event.keyCode == KeyCode.KEY_ENTER && !event.shiftKey)
button_connect.trigger('click');
});
diff --git a/shared/js/ui/modal/permission/PermissionEditor.ts b/shared/js/ui/modal/permission/PermissionEditor.ts
index 807d8b37..6a32b0d6 100644
--- a/shared/js/ui/modal/permission/PermissionEditor.ts
+++ b/shared/js/ui/modal/permission/PermissionEditor.ts
@@ -898,7 +898,7 @@ namespace ui {
});
element.on('keypress', event => {
- if(event.which == JQuery.Key.Enter)
+ if(event.which == KeyCode.KEY_ENTER)
element.trigger('focusout');
const text = String.fromCharCode(event.which);
diff --git a/shared/js/ui/view.ts b/shared/js/ui/view.ts
index d1665e63..c6a2ad84 100644
--- a/shared/js/ui/view.ts
+++ b/shared/js/ui/view.ts
@@ -690,7 +690,7 @@ class ChannelTree {
handle_key_press(event: KeyboardEvent) {
if(!this.selected_event || !this.currently_selected || $.isArray(this.currently_selected)) return;
- if(event.keyCode == JQuery.Key.ArrowUp) {
+ if(event.keyCode == KeyCode.KEY_UP) {
event.preventDefault();
if(this.currently_selected instanceof ChannelEntry) {
let previous = this.currently_selected.channel_previous;
@@ -734,7 +734,7 @@ class ChannelTree {
return;
}
- } else if(event.keyCode == JQuery.Key.ArrowDown) {
+ } else if(event.keyCode == KeyCode.KEY_DOWN) {
event.preventDefault();
if(this.currently_selected instanceof ChannelEntry) {
this.select_next_channel(this.currently_selected, true);
@@ -750,7 +750,7 @@ class ChannelTree {
this.select_next_channel(channel, false);
} else if(this.currently_selected instanceof ServerEntry)
this.onSelect(this.channel_first, true);
- } else if(event.keyCode == JQuery.Key.Enter) {
+ } else if(event.keyCode == KeyCode.KEY_ENTER) {
if(this.currently_selected instanceof ChannelEntry) {
this.currently_selected.joinChannel();
}