Merge pull request #4183 from tkanmae/fix-vim-escape

ESC should be handled by CM if tooltip is not displayed
This commit is contained in:
Min RK 2013-09-15 11:30:29 -07:00
commit 5a3da993e3
2 changed files with 16 additions and 10 deletions

View File

@ -179,8 +179,7 @@ var IPython = (function (IPython) {
return true;
};
} else if (event.which === key.ESC) {
IPython.tooltip.remove_and_cancel_tooltip(true);
return true;
return IPython.tooltip.remove_and_cancel_tooltip(true);
} else if (event.which === key.DOWNARROW && event.type === 'keydown') {
// If we are not at the bottom, let CM handle the down arrow and
// prevent the global keydown handler from handling it.

View File

@ -161,16 +161,23 @@ var IPython = (function (IPython) {
this.code_mirror = null;
}
// return true on successfully removing a visible tooltip; otherwise return
// false.
Tooltip.prototype.remove_and_cancel_tooltip = function (force) {
// note that we don't handle closing directly inside the calltip
// as in the completer, because it is not focusable, so won't
// get the event.
if (this._sticky == false || force == true) {
if (!this._hidden) {
if (force || !this._sticky) {
this.cancel_stick();
this._hide();
}
this.cancel_pending();
this.reset_tabs_function();
return true;
} else {
return false;
}
}
// cancel autocall done after '(' for example.