X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/059e387a80cf9c52b4a17d9f174ecdb7de492d25..457a2c13a27a5fd49bdd5b0162111e3a9220a6ca:/src/editor/modules/documentCanvas/canvas/keyboard.js diff --git a/src/editor/modules/documentCanvas/canvas/keyboard.js b/src/editor/modules/documentCanvas/canvas/keyboard.js index aae19a0..e2479a5 100644 --- a/src/editor/modules/documentCanvas/canvas/keyboard.js +++ b/src/editor/modules/documentCanvas/canvas/keyboard.js @@ -318,6 +318,17 @@ var keyEventHandlers = [ s.canvas.setCurrentElement(s.canvas.getDocumentElement(position.textNode), {caretTo: position.offset}); } } + if(target) { + scrolled = scroll('top', target); + var left = caretRect.left; + if(left > rect.left + rect.width) { + left = rect.left + rect.width; + } else if(left < rect.left ) { + left = rect.left; + } + position = utils.caretPositionFromPoint(left, rect.bottom - 1 - scrolled); + s.canvas.setCurrentElement(s.canvas.getDocumentElement(position.textNode), {caretTo: position.offset}); + } } }, { @@ -347,6 +358,17 @@ var keyEventHandlers = [ s.canvas.setCurrentElement(s.canvas.getDocumentElement(position.textNode), {caretTo: position.offset}); } } + if(target) { + scrolled = scroll('bottom', target); + var left = caretRect.left; + if(left > rect.left + rect.width) { + left = rect.left + rect.width; + } else if(left < rect.left ) { + left = rect.left; + } + position = utils.caretPositionFromPoint(left, rect.top +1 - scrolled); + s.canvas.setCurrentElement(s.canvas.getDocumentElement(position.textNode), {caretTo: position.offset}); + } } }, {