Merge pull request #42 from levlaz/fix_tab_input

Only handle tab key inside of editor
This commit is contained in:
Mo Bitar
2017-01-19 23:55:22 -06:00
committed by GitHub

View File

@@ -15,16 +15,22 @@ angular.module('app.frontend')
link:function(scope, elem, attrs, ctrl) {
/**
* Insert 4 spaces when a tab key is pressed,
* only used when inside of the text editor.
*/
var handleTab = function (event) {
if (event.which == 9) {
event.preventDefault();
var start = event.target.selectionStart;
var end = event.target.selectionEnd;
var spaces = " ";
event.target.value = event.target.value.substring(0, start)
+ spaces + event.target.value.substring(end);
}
}
var handler = function(event) {
// Handle Tab Key
if (event.which == 9) {
event.preventDefault();
var start = event.target.selectionStart;
var end = event.target.selectionEnd;
var spaces = " ";
event.target.value = event.target.value.substring(0, start)
+ spaces + event.target.value.substring(end);
}
if (event.ctrlKey || event.metaKey) {
switch (String.fromCharCode(event.which).toLowerCase()) {
case 's':
@@ -56,6 +62,8 @@ angular.module('app.frontend')
};
window.addEventListener('keydown', handler);
var element = document.getElementById("note-text-editor");
element.addEventListener('keydown', handleTab);
scope.$on('$destroy', function(){
window.removeEventListener('keydown', handler);