|
@@ -6,7 +6,7 @@ import {
|
|
focusByWbr,
|
|
focusByWbr,
|
|
getEditorRange,
|
|
getEditorRange,
|
|
getSelectionOffset, getSelectionPosition,
|
|
getSelectionOffset, getSelectionPosition,
|
|
- selectAll, setFirstNodeRange,
|
|
|
|
|
|
+ selectAll, setFirstNodeRange, setLastNodeRange,
|
|
} from "../util/selection";
|
|
} from "../util/selection";
|
|
import {
|
|
import {
|
|
hasClosestBlock,
|
|
hasClosestBlock,
|
|
@@ -687,6 +687,9 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|
}
|
|
}
|
|
focusBlock(nextElement);
|
|
focusBlock(nextElement);
|
|
scrollCenter(protyle, nextElement);
|
|
scrollCenter(protyle, nextElement);
|
|
|
|
+ } else {
|
|
|
|
+ setLastNodeRange(nodeEditableElement, range, false);
|
|
|
|
+ range.collapse(false)
|
|
}
|
|
}
|
|
event.stopPropagation();
|
|
event.stopPropagation();
|
|
event.preventDefault();
|
|
event.preventDefault();
|
|
@@ -696,9 +699,12 @@ export const keydown = (protyle: IProtyle, editorElement: HTMLElement) => {
|
|
if (nextFoldElement && nextFoldElement.getAttribute("fold") === "1") {
|
|
if (nextFoldElement && nextFoldElement.getAttribute("fold") === "1") {
|
|
focusBlock(nextFoldElement);
|
|
focusBlock(nextFoldElement);
|
|
scrollCenter(protyle, nextFoldElement);
|
|
scrollCenter(protyle, nextFoldElement);
|
|
- event.stopPropagation();
|
|
|
|
- event.preventDefault();
|
|
|
|
|
|
+ } else {
|
|
|
|
+ setLastNodeRange(nodeEditableElement, range, false);
|
|
|
|
+ range.collapse(false)
|
|
}
|
|
}
|
|
|
|
+ event.stopPropagation();
|
|
|
|
+ event.preventDefault();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return;
|
|
return;
|