Show More
@@ -172,8 +172,9 b' var IPython = (function (IPython) {' | |||||
172 | var that = this; |
|
172 | var that = this; | |
173 | // whatever key is pressed, first, cancel the tooltip request before |
|
173 | // whatever key is pressed, first, cancel the tooltip request before | |
174 | // they are sent, and remove tooltip if any, except for tab again |
|
174 | // they are sent, and remove tooltip if any, except for tab again | |
|
175 | var tooltip_closed = null; | |||
175 | if (event.type === 'keydown' && event.which != key.TAB ) { |
|
176 | if (event.type === 'keydown' && event.which != key.TAB ) { | |
176 | IPython.tooltip.remove_and_cancel_tooltip(); |
|
177 | tooltip_closed = IPython.tooltip.remove_and_cancel_tooltip(); | |
177 | } |
|
178 | } | |
178 |
|
179 | |||
179 | var cur = editor.getCursor(); |
|
180 | var cur = editor.getCursor(); | |
@@ -200,8 +201,32 b' var IPython = (function (IPython) {' | |||||
200 | } else { |
|
201 | } else { | |
201 | return true; |
|
202 | return true; | |
202 | } |
|
203 | } | |
203 | } else if (event.which === key.ESC) { |
|
204 | } else if (event.which === key.ESC && event.type === 'keydown') { | |
204 | return IPython.tooltip.remove_and_cancel_tooltip(true); |
|
205 | // First see if the tooltip is active and if so cancel it. | |
|
206 | if (tooltip_closed) { | |||
|
207 | // The call to remove_and_cancel_tooltip above in L177 doesn't pass | |||
|
208 | // force=true. Because of this it won't actually close the tooltip | |||
|
209 | // if it is in sticky mode. Thus, we have to check again if it is open | |||
|
210 | // and close it with force=true. | |||
|
211 | if (!IPython.tooltip._hidden) { | |||
|
212 | IPython.tooltip.remove_and_cancel_tooltip(true); | |||
|
213 | } | |||
|
214 | // If we closed the tooltip, don't let CM or the global handlers | |||
|
215 | // handle this event. | |||
|
216 | event.stop(); | |||
|
217 | return true; | |||
|
218 | } | |||
|
219 | if (that.code_mirror.options.keyMap === "vim-insert") { | |||
|
220 | // vim keyMap is active and in insert mode. In this case we leave vim | |||
|
221 | // insert mode, but remain in notebook edit mode. | |||
|
222 | // Let' CM handle this event and prevent global handling. | |||
|
223 | event.stop(); | |||
|
224 | return false; | |||
|
225 | } else { | |||
|
226 | // vim keyMap is not active. Leave notebook edit mode. | |||
|
227 | // Don't let CM handle the event, defer to global handling. | |||
|
228 | return true; | |||
|
229 | } | |||
205 | } else if (event.which === key.DOWNARROW && event.type === 'keydown') { |
|
230 | } else if (event.which === key.DOWNARROW && event.type === 'keydown') { | |
206 | // If we are not at the bottom, let CM handle the down arrow and |
|
231 | // If we are not at the bottom, let CM handle the down arrow and | |
207 | // prevent the global keydown handler from handling it. |
|
232 | // prevent the global keydown handler from handling it. | |
@@ -211,7 +236,7 b' var IPython = (function (IPython) {' | |||||
211 | } else { |
|
236 | } else { | |
212 | return true; |
|
237 | return true; | |
213 | } |
|
238 | } | |
214 | } else if (event.keyCode === key.TAB && event.type == 'keydown' && event.shiftKey) { |
|
239 | } else if (event.keyCode === key.TAB && event.type === 'keydown' && event.shiftKey) { | |
215 | if (editor.somethingSelected()){ |
|
240 | if (editor.somethingSelected()){ | |
216 | var anchor = editor.getCursor("anchor"); |
|
241 | var anchor = editor.getCursor("anchor"); | |
217 | var head = editor.getCursor("head"); |
|
242 | var head = editor.getCursor("head"); |
@@ -155,6 +155,18 b' var IPython = (function (IPython) {' | |||||
155 | } else { |
|
155 | } else { | |
156 | return true; |
|
156 | return true; | |
157 | }; |
|
157 | }; | |
|
158 | } else if (event.which === key.ESC && event.type === 'keydown') { | |||
|
159 | if (that.code_mirror.options.keyMap === "vim-insert") { | |||
|
160 | // vim keyMap is active and in insert mode. In this case we leave vim | |||
|
161 | // insert mode, but remain in notebook edit mode. | |||
|
162 | // Let' CM handle this event and prevent global handling. | |||
|
163 | event.stop(); | |||
|
164 | return false; | |||
|
165 | } else { | |||
|
166 | // vim keyMap is not active. Leave notebook edit mode. | |||
|
167 | // Don't let CM handle the event, defer to global handling. | |||
|
168 | return true; | |||
|
169 | } | |||
158 | } |
|
170 | } | |
159 | return false; |
|
171 | return false; | |
160 | }; |
|
172 | }; |
General Comments 0
You need to be logged in to leave comments.
Login now