Show More
@@ -221,6 +221,7 b' var IPython = (function (IPython) {' | |||||
221 | // Currently webkit doesn't use the size attr correctly. See: |
|
221 | // Currently webkit doesn't use the size attr correctly. See: | |
222 | // https://code.google.com/p/chromium/issues/detail?id=4579 |
|
222 | // https://code.google.com/p/chromium/issues/detail?id=4579 | |
223 | this.sel = $('<select style="width: auto"/>') |
|
223 | this.sel = $('<select style="width: auto"/>') | |
|
224 | .attr('tabindex', -1) | |||
224 | .attr('multiple', 'true') |
|
225 | .attr('multiple', 'true') | |
225 | .attr('size', Math.min(10, this.raw_result.length)); |
|
226 | .attr('size', Math.min(10, this.raw_result.length)); | |
226 | this.complete.append(this.sel); |
|
227 | this.complete.append(this.sel); | |
@@ -248,36 +249,16 b' var IPython = (function (IPython) {' | |||||
248 | this.sel.dblclick(function () { |
|
249 | this.sel.dblclick(function () { | |
249 | that.pick(); |
|
250 | that.pick(); | |
250 | }); |
|
251 | }); | |
251 | this.sel.blur($.proxy(this.close, this)); |
|
252 | this.editor.on('keydown', function (event) { | |
252 |
|
|
253 | that.keydown(event); | |
253 | // Ignore tab key since it causes the completer to reshow on some |
|
|||
254 | // machines and not with others. This strange behavior is due to |
|
|||
255 | // the fact that we are tricking the notebook into thinking that it |
|
|||
256 | // is in edit mode when it's really not. |
|
|||
257 | if (IPython.keyboard.event_to_shortcut(event)=='tab') { |
|
|||
258 | event.stopPropagation(); |
|
|||
259 | event.preventDefault(); |
|
|||
260 | } else { |
|
|||
261 | that.keydown(event); |
|
|||
262 | } |
|
|||
263 | }); |
|
254 | }); | |
264 |
this. |
|
255 | this.editor.on('keypress', function (event) { | |
265 | that.keypress(event); |
|
256 | that.keypress(event); | |
266 | }); |
|
257 | }); | |
267 |
|
258 | |||
268 | this.build_gui_list(this.raw_result); |
|
259 | this.build_gui_list(this.raw_result); | |
269 |
|
260 | |||
270 | this.sel.focus(); |
|
261 | this.sel.focus(); | |
271 | // Since the completer can and will gain focus and it isn't a component |
|
|||
272 | // of the codemirror instance, we need to manually "fake" codemirror as |
|
|||
273 | // still being focused. This is accomplished by calling edit_mode on |
|
|||
274 | // the cell when the completer gains focus, and command mode when the |
|
|||
275 | // completer loses focus. If the completer was an actual, true extension |
|
|||
276 | // of codemirror, we wouldn't have to play this game since codemirror |
|
|||
277 | // wouldn't blur when the completer was shown. |
|
|||
278 | this.cell.edit_mode(); |
|
|||
279 | $([IPython.events]).trigger('edit_mode.Notebook'); |
|
|||
280 | IPython.keyboard_manager.disable(); |
|
|||
281 | // Opera sometimes ignores focusing a freshly created node |
|
262 | // Opera sometimes ignores focusing a freshly created node | |
282 | if (window.opera) setTimeout(function () { |
|
263 | if (window.opera) setTimeout(function () { | |
283 | if (!this.done) this.sel.focus(); |
|
264 | if (!this.done) this.sel.focus(); | |
@@ -301,16 +282,6 b' var IPython = (function (IPython) {' | |||||
301 | Completer.prototype.close = function () { |
|
282 | Completer.prototype.close = function () { | |
302 | this.done = true; |
|
283 | this.done = true; | |
303 | $('#complete').remove(); |
|
284 | $('#complete').remove(); | |
304 | // Since the completer can and will gain focus and it isn't a component |
|
|||
305 | // of the codemirror instance, we need to manually "fake" codemirror as |
|
|||
306 | // still being focused. This is accomplished by calling edit_mode on |
|
|||
307 | // the cell when the completer gains focus, and command mode when the |
|
|||
308 | // completer loses focus. If the completer was an actual, true extension |
|
|||
309 | // of codemirror, we wouldn't have to play this game since codemirror |
|
|||
310 | // wouldn't blur when the completer was shown. |
|
|||
311 | this.cell.command_mode(); |
|
|||
312 | $([IPython.events]).trigger('command_mode.Notebook'); |
|
|||
313 | IPython.keyboard_manager.enable(); |
|
|||
314 | }; |
|
285 | }; | |
315 |
|
286 | |||
316 | Completer.prototype.pick = function () { |
|
287 | Completer.prototype.pick = function () { |
General Comments 0
You need to be logged in to leave comments.
Login now