diff --git a/IPython/html/static/notebook/js/keyboardmanager.js b/IPython/html/static/notebook/js/keyboardmanager.js index 0d6f35104..b8486cd37 100644 --- a/IPython/html/static/notebook/js/keyboardmanager.js +++ b/IPython/html/static/notebook/js/keyboardmanager.js @@ -748,14 +748,22 @@ var IPython = (function (IPython) { KeyboardManager.prototype.register_events = function (e) { var that = this; - e.on('focusin', function () { + var handle_focus = function () { console.log('kb focus in'); that.disable(); - }); - e.on('focusout', function () { + }; + var handle_blur = function () { console.log('kb focus out'); that.enable(); - }); + }; + e.on('focusin', handle_focus); + e.on('focusout', handle_blur); + // TODO: Very strange. The focusout event does not seem fire for the + // bootstrap text boxes on FF25&26... + e.find('*').blur(handle_blur); + e.on('DOMNodeInserted', function () { + e.find('*').blur(handle_blur); + }); // There are times (raw_input) where we remove the element from the DOM before // focusout is called. In this case we bind to the remove event of jQueryUI, // which gets triggered upon removal, iff it is focused at the time.