saving caret position

This commit is contained in:
khaydarov 2016-06-04 20:25:03 +03:00
parent a2493372f6
commit 2e5c571f88
2 changed files with 15 additions and 18 deletions

View file

@ -211,6 +211,9 @@ cEditor.ui = {
/** Mouse click to radactor */
cEditor.nodes.redactor.addEventListener('click', function (event) {
cEditor.callback.redactorClicked(event);
cEditor.content.saveCaretPosition();
}, false );
/** Any redactor changes: keyboard input, mouse cut/paste, drag-n-drop text */
@ -385,15 +388,17 @@ cEditor.content = {
saveCaretPosition () {
var selection = window.getSelection();
var previousElement = selection.anchorNode.previousSibling,
parent = selection.anchorNode.parentElement;
nodeIndex = 0;
while (previousElement != null) {
while (previousElement != null) {
nodeIndex ++;
previousElement = previousElement.previousSibling;
nodeIndex ++;
previousElement = previousElement.previousSibling;
}
}
this.caretOffset = selection.anchorOffset;
this.focusedNodeIndex = nodeIndex;
@ -422,11 +427,6 @@ cEditor.content = {
selection.removeAllRanges();
selection.addRange(range);
/**
* set caret to default posilion
*/
this.focusedNodeIndex = null;
this.caretOffset = null;
},
getNodeFocused : function() {
@ -484,13 +484,7 @@ cEditor.content = {
* Make new node with original content
*/
var nodeCreated = cEditor.draw.block(newBlockTagname, targetBlock.innerHTML);
/**
* Get caret position before we change block
*/
cEditor.content.saveCaretPosition();
/**
* If it is a first-level node, replace as-is.
*/

View file

@ -4,7 +4,7 @@
<meta charset="utf-8">
<title>CodeX Editor</title>
<link rel="stylesheet" href="editor.css" />
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,400italic,600,700,800&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,400italic,600,700,800&subset=latin,cyrillic' rel='stylesheet' type='text/css' async=true>
<style>
body{
font-family: 'Open Sans';
@ -29,7 +29,10 @@
<p>На днях я получил очередной проект по разработке личного кабинета.<br> Как обычно, я открыл консоль, чтобы посмотреть историю проекта, ветки и все ли правки закомичены (от слова commit - фиксировать). Однако ничего из этого я не узнал — проект не содержал .git репозитория.<br> Эта ситуация в очередной раз заставила задуматься о том, как много разработчиков до сих пор не понимают необходимость контролировать изменения в файлах с исходным кодом. А многие и вовсе не знают что это такое, и как этим пользоваться.</p>
<h2>Почему нужно использовать систему контроля версий</h2>
<p>Основные преимущества:</p>
<p>
<code>Основные преимущества:</code>
<address>sdfsdfsdf</address>
</p>
<ul>
<li>одновременная работа нескольких человек над проектом</li>
<li>возможность быстро обнаружить и откатить, все не зафиксированные изменения</li>