Add flip link
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user