Add flip link

This commit is contained in:
Ian Gulliver
2019-07-11 20:08:29 +00:00
parent 0ecbd40642
commit e04c8b50dd
2 changed files with 26 additions and 0 deletions

View File

@@ -49,6 +49,10 @@ class EditorHelp extends EditorEntryBase {
this.addLine();
this.addKey('␣');
this.addText('Highlight ');
this.addLine();
this.addKey('f');
this.addText('Flip link ');
}
addLine() {

View File

@@ -63,6 +63,22 @@ class EditorLink extends EditorEntryBase {
this.elem_.classList.toggle('highlight', highlight);
}
flip() {
let entries = this.nodes_.getEntries(EditorNode);
let fromElem = entries[0].getElement();
let toElem = entries[1].getElement();
let fromHasFocus = document.activeElement == fromElem;
let toHasFocus = document.activeElement == toElem;
toElem.parentElement.insertBefore(toElem, fromElem);
if (fromHasFocus) {
fromElem.focus();
} else if (toHasFocus) {
toElem.focus();
}
}
onKeyDown(e) {
super.onKeyDown(e);
@@ -81,6 +97,12 @@ class EditorLink extends EditorEntryBase {
e.stopPropagation();
e.preventDefault();
break;
case 'f':
this.flip();
e.stopPropagation();
e.preventDefault();
break;
}
}