-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathglobal-keys.js
More file actions
80 lines (78 loc) · 2.33 KB
/
Copy pathglobal-keys.js
File metadata and controls
80 lines (78 loc) · 2.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/*global chrome*/
"use strict";
var zoom = require('./zoom');
var editor = require('./editor');
var tree = require('./tree');
var dialog = require('./dialog');
var doc = require('data/document');
var os = require('data/os');
var pending;
window.addEventListener("keydown", onDown, true);
window.addEventListener("keyup", onUp, true);
window.addEventListener("keypress", onPress, true);
function onDown(evt) {
var ctrlOrMeta = os.isMac ? evt.metaKey : evt.ctrlKey;
// Ctrl-0
if (ctrlOrMeta && !evt.shiftKey && evt.keyCode === 48) zoom.reset();
// Ctrl-"+"
else if (ctrlOrMeta && !evt.shiftKey && evt.keyCode === 187) zoom.bigger();
// Ctrl-"-"
else if (ctrlOrMeta && !evt.shiftKey && evt.keyCode === 189) zoom.smaller();
// Ctrl-Shift-R
else if (ctrlOrMeta && evt.shiftKey && evt.keyCode === 82) chrome.runtime.reload();
else if (ctrlOrMeta && evt.keyCode === 66) {
// Ctrl-Shift-B
if (evt.shiftKey) editor.prevTheme();
// Ctrl-B
else editor.nextTheme();
}
else if (dialog.close) {
// Esc closes a dialog
if (evt.keyCode === 27) dialog.close();
else return;
}
// Alt+` switches between documents
else if ((os.isMac ? evt.ctrlKey : evt.altKey) && evt.keyCode === 192) {
pending = true;
doc.next();
}
// Control-E Toggles Tree
else if (ctrlOrMeta && evt.keyCode === 69) {
tree.toggle();
}
// Control-N Create new file
else if (ctrlOrMeta && !evt.shiftKey && evt.keyCode === 78) {
tree.newFile();
}
else if (!tree.isFocused()) return;
else if (evt.keyCode === 33) tree.pageUp();
else if (evt.keyCode === 34) tree.pageDown();
else if (evt.keyCode === 35) tree.end();
else if (evt.keyCode === 36) tree.home();
else if (evt.keyCode === 37) tree.left();
else if (evt.keyCode === 38) tree.up();
else if (evt.keyCode === 39) tree.right();
else if (evt.keyCode === 40) tree.down();
else if (evt.keyCode === 27) tree.cancel();
else if (evt.keyCode === 8) tree.backspace();
else if (evt.keyCode === 13) { // Enter
tree.activate();
}
else return;
evt.preventDefault();
evt.stopPropagation();
}
function onPress(evt) {
if (dialog.close || !tree.isFocused()) return;
evt.preventDefault();
evt.stopPropagation();
tree.onChar(evt.charCode);
}
function onUp(evt) {
if (evt.keyCode === 18) {
if (pending) {
pending = false;
doc.reset();
}
}
}