diff options
| -rw-r--r-- | vimiumFrontend.js | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/vimiumFrontend.js b/vimiumFrontend.js index 58113e1a..a1ad7c9c 100644 --- a/vimiumFrontend.js +++ b/vimiumFrontend.js @@ -115,25 +115,33 @@ function initializeWhenEnabled() { document.addEventListener("keydown", onKeydown); document.addEventListener("focus", onFocusCapturePhase, true); document.addEventListener("blur", onBlurCapturePhase, true); + enterInsertModeIfElementIsFocused(); } /* * Initialization tasks that must wait for the document to be ready. */ function initializeOnDomReady() { - if (isEnabledForUrl) { - // Enter insert mode automatically if there's already a text box focused. - var focusNode = window.getSelection().focusNode; - var focusOffset = window.getSelection().focusOffset; - if (focusNode && focusOffset && focusNode.children.length > focusOffset && - isInputOrText(focusNode.children[focusOffset])) - enterInsertMode(); - } + if (isEnabledForUrl) + enterInsertModeIfElementIsFocused(); // Tell the background page we're in the dom ready state. chrome.extension.connect({ name: "domReady" }); }; /* + * Checks the currently focused element of the document and will enter insert mode if that element is focusable. + */ +function enterInsertModeIfElementIsFocused() { + // Enter insert mode automatically if there's already a text box focused. + // TODO(philc): Consider using document.activeElement here instead. + var focusNode = window.getSelection().focusNode; + var focusOffset = window.getSelection().focusOffset; + if (focusNode && focusOffset && focusNode.children.length > focusOffset && + isInputOrText(focusNode.children[focusOffset])) + enterInsertMode(); +} + +/* * Asks the background page to persist the zoom level for the given domain to localStorage. */ function saveZoomLevel(domain, zoomLevel) { |
