0
Fork 0
mirror of https://github.com/fastmail/Squire.git synced 2024-12-21 23:03:11 -05:00

Fix format intent lost after pressing Space

On Chrome, if you made an inline formatting change, this would insert a
new <span> with a ZWS inside so we could focus it. Pressing Space would
remove this ZWS resulting in the focus ending up outside and so the
formatting would be lost. We were removing the ZWS so we could check
if we were at a block boundary correctly; instead, I've made it so the
boundary check can handle trailing or leading ZWS (see previous commit).
This commit is contained in:
Neil Jenkins 2023-09-27 14:56:00 +10:00
parent 2d37608aac
commit 9f5df9e5c0

View file

@ -18,7 +18,6 @@ const Space = (self: Squire, event: KeyboardEvent, range: Range): void => {
const root = self._root;
self._recordUndoState(range);
self._getRangeAndRemoveBookmark(range);
self._removeZWS();
// Delete the selection if not collapsed
if (!range.collapsed) {
@ -29,7 +28,7 @@ const Space = (self: Squire, event: KeyboardEvent, range: Range): void => {
} else if (rangeDoesEndAtBlockBoundary(range, root)) {
const block = getStartBlockOfRange(range, root);
if (block && block.nodeName !== 'PRE') {
const text = block.textContent?.trimEnd();
const text = block.textContent?.trimEnd().replace(ZWS, '');
if (text === '*' || text === '1.') {
event.preventDefault();
const walker = new TreeIterator<Text>(block, SHOW_TEXT);