Refactor the completion functionality when pressing the Tab key, to not have to
preventDefault, and use the default tab functionality on the page.
This works by re-focusing the field on which the autocomplete was triggered, and
for which a quicktext was found, with an unnoticeable delay.
It works overall, but needs some cleaning-up.
Complete refactoring of the tab-completion functionality.
Cleanup older behaviour and remove stuff we no longer need (eg. inCompose,
data.contentEditable, global element reference), since we now pass most of the
required variabled directly into function params, instead of using globals.
Fix issues causing the quicktext to always be replaced on the first text node in the contenteditable. This was caused by the fact that you can't pass window.getSelection() around, since it's passed by reference and always refers to the latest selection.
Fixed it by passing the focusNode as a paramter, instead of the selection.
Replace the caret positioning in the autocomplete replace method, to no longer use the `#qt-caret` virtual caret, and position the caret after the lastChild of the documentFragment.
Fix issues with the autocomplete dialog not showing up because it didn't find any quicktexts. We now show the dialog even if we haven't found any quicktexts for the current query, with the default `no quicktexts found` message.
Fix issues with restoring the focus when using the Enter or Esc keys to close the autocomplete dialog.
When closing the dialog with the esc key, restore the caret in the previous position.
Force a sans-serif font and a 12px size for the text in the autocomplete dialog, so it doesn't get too small because of the parent styles.
Load the content script at `document_end` instead of `document_idle` to fix issues with websites (eg. gmail) not loading the contentscript because it keeps making ajax calls in the background.
In the outlook plugin, get the name from the top right, in case we couldn't get it from .fromContainer.
Fix issues with parsing the names in the yahoo and outlook plugins.
Use empty string by default for the completion dialog. Fixin an issue by removing a feature :)
Add initial concept artwork.
Increase font size to 16px in the autocomplete dialog.