diff options
67 files changed, 3356 insertions, 681 deletions
diff --git a/css/ninja.css b/css/ninja.css index 650f3b08..297ed7cd 100755 --- a/css/ninja.css +++ b/css/ninja.css | |||
@@ -212,7 +212,7 @@ body { position: absolute; margin: 0px; width: 100%; height: 100%; background-co | |||
212 | 212 | ||
213 | #mainContent .CodeMirror { width: 100%; height: 100%; background: white; } | 213 | #mainContent .CodeMirror { width: 100%; height: 100%; background: white; } |
214 | 214 | ||
215 | #mainContent .CodeMirror-scroll { height: 100%; overflow: scroll; overflow-x: auto; overflow-y: auto; } | 215 | #mainContent .CodeMirror-scroll { height: 100%; overflow:auto; } |
216 | 216 | ||
217 | .montage-editor-frame { position: absolute; z-index: 7; top: 0; left: 0; display: none; -webkit-user-select: initial; } | 217 | .montage-editor-frame { position: absolute; z-index: 7; top: 0; left: 0; display: none; -webkit-user-select: initial; } |
218 | 218 | ||
diff --git a/imports/codemirror/lib/codemirror.css b/imports/codemirror/lib/codemirror.css index 5eadb247..2d79f4aa 100644 --- a/imports/codemirror/lib/codemirror.css +++ b/imports/codemirror/lib/codemirror.css | |||
@@ -9,6 +9,7 @@ | |||
9 | /* This is needed to prevent an IE[67] bug where the scrolled content | 9 | /* This is needed to prevent an IE[67] bug where the scrolled content |
10 | is visible outside of the scrolling box. */ | 10 | is visible outside of the scrolling box. */ |
11 | position: relative; | 11 | position: relative; |
12 | outline: none; | ||
12 | } | 13 | } |
13 | 14 | ||
14 | .CodeMirror-gutter { | 15 | .CodeMirror-gutter { |
@@ -27,6 +28,7 @@ | |||
27 | } | 28 | } |
28 | .CodeMirror-lines { | 29 | .CodeMirror-lines { |
29 | padding: .4em; | 30 | padding: .4em; |
31 | white-space: pre; | ||
30 | } | 32 | } |
31 | 33 | ||
32 | .CodeMirror pre { | 34 | .CodeMirror pre { |
diff --git a/imports/codemirror/lib/codemirror.js b/imports/codemirror/lib/codemirror.js index 9c6e65e4..5434a8dd 100644 --- a/imports/codemirror/lib/codemirror.js +++ b/imports/codemirror/lib/codemirror.js | |||
@@ -1,4 +1,4 @@ | |||
1 | // CodeMirror version 2.22 | 1 | // CodeMirror version 2.23 |
2 | // | 2 | // |
3 | // All functions that need access to the editor's state live inside | 3 | // All functions that need access to the editor's state live inside |
4 | // the CodeMirror function. Below that, at the bottom of the file, | 4 | // the CodeMirror function. Below that, at the bottom of the file, |
@@ -15,9 +15,8 @@ var CodeMirror = (function() { | |||
15 | if (defaults.hasOwnProperty(opt)) | 15 | if (defaults.hasOwnProperty(opt)) |
16 | options[opt] = (givenOptions && givenOptions.hasOwnProperty(opt) ? givenOptions : defaults)[opt]; | 16 | options[opt] = (givenOptions && givenOptions.hasOwnProperty(opt) ? givenOptions : defaults)[opt]; |
17 | 17 | ||
18 | var targetDocument = options["document"]; | ||
19 | // The element in which the editor lives. | 18 | // The element in which the editor lives. |
20 | var wrapper = targetDocument.createElement("div"); | 19 | var wrapper = document.createElement("div"); |
21 | wrapper.className = "CodeMirror" + (options.lineWrapping ? " CodeMirror-wrap" : ""); | 20 | wrapper.className = "CodeMirror" + (options.lineWrapping ? " CodeMirror-wrap" : ""); |
22 | // This mess creates the base DOM structure for the editor. | 21 | // This mess creates the base DOM structure for the editor. |
23 | wrapper.innerHTML = | 22 | wrapper.innerHTML = |
@@ -48,7 +47,10 @@ var CodeMirror = (function() { | |||
48 | if (!webkit) lineSpace.draggable = true; | 47 | if (!webkit) lineSpace.draggable = true; |
49 | lineSpace.style.outline = "none"; | 48 | lineSpace.style.outline = "none"; |
50 | if (options.tabindex != null) input.tabIndex = options.tabindex; | 49 | if (options.tabindex != null) input.tabIndex = options.tabindex; |
50 | if (options.autofocus) focusInput(); | ||
51 | if (!options.gutter && !options.lineNumbers) gutter.style.display = "none"; | 51 | if (!options.gutter && !options.lineNumbers) gutter.style.display = "none"; |
52 | // Needed to handle Tab key in KHTML | ||
53 | if (khtml) inputDiv.style.height = "1px", inputDiv.style.position = "absolute"; | ||
52 | 54 | ||
53 | // Check for problem with IE innerHTML not working when we have a | 55 | // Check for problem with IE innerHTML not working when we have a |
54 | // P (or similar) parent node. | 56 | // P (or similar) parent node. |
@@ -81,12 +83,13 @@ var CodeMirror = (function() { | |||
81 | gutterDirty, callbacks; | 83 | gutterDirty, callbacks; |
82 | // Current visible range (may be bigger than the view window). | 84 | // Current visible range (may be bigger than the view window). |
83 | var displayOffset = 0, showingFrom = 0, showingTo = 0, lastSizeC = 0; | 85 | var displayOffset = 0, showingFrom = 0, showingTo = 0, lastSizeC = 0; |
84 | // bracketHighlighted is used to remember that a backet has been | 86 | // bracketHighlighted is used to remember that a bracket has been |
85 | // marked. | 87 | // marked. |
86 | var bracketHighlighted; | 88 | var bracketHighlighted; |
87 | // Tracks the maximum line length so that the horizontal scrollbar | 89 | // Tracks the maximum line length so that the horizontal scrollbar |
88 | // can be kept static when scrolling. | 90 | // can be kept static when scrolling. |
89 | var maxLine = "", maxWidth; | 91 | var maxLine = "", maxWidth; |
92 | var tabCache = {}; | ||
90 | 93 | ||
91 | // Initialize the content. | 94 | // Initialize the content. |
92 | operation(function(){setValue(options.value || ""); updateInput = false;})(); | 95 | operation(function(){setValue(options.value || ""); updateInput = false;})(); |
@@ -124,10 +127,16 @@ var CodeMirror = (function() { | |||
124 | if (!options.readOnly) replaceSelection(""); | 127 | if (!options.readOnly) replaceSelection(""); |
125 | })); | 128 | })); |
126 | 129 | ||
130 | // Needed to handle Tab key in KHTML | ||
131 | if (khtml) connect(code, "mouseup", function() { | ||
132 | if (document.activeElement == input) input.blur(); | ||
133 | focusInput(); | ||
134 | }); | ||