Skip to content

Commit

Permalink
Deskop: Fixed shortcut to focus the note body (#5597)
Browse files Browse the repository at this point in the history
  • Loading branch information
brttbndr authored Oct 30, 2021
1 parent 0b01b5b commit 8de9032
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,9 @@ function CodeMirror(props: NoteBodyEditorProps, ref: any) {
if (props.visiblePanes.indexOf('editor') >= 0) {
editorRef.current.focus();
} else {
webviewRef.current.wrappedInstance.focus();
// If we just call wrappedInstance.focus() then the iframe is focused,
// but not its content, such that scrolling up / down with arrow keys fails
webviewRef.current.wrappedInstance.send('focus');
}
} else {
commandProcessed = false;
Expand Down
4 changes: 4 additions & 0 deletions packages/app-desktop/gui/NoteTextViewer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,10 @@ class NoteTextViewerComponent extends React.Component<Props, any> {
send(channel: string, arg0: any = null, arg1: any = null) {
const win = this.webviewRef_.current.contentWindow;

if (channel === 'focus') {
win.postMessage({ target: 'webview', name: 'focus', data: {} }, '*');
}

if (channel === 'setHtml') {
win.postMessage({ target: 'webview', name: 'setHtml', data: { html: arg0, options: arg1 } }, '*');
}
Expand Down
11 changes: 11 additions & 0 deletions packages/app-desktop/gui/note-viewer/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,17 @@

let checkAllImageLoadedIID_ = null;

ipc.focus = (event) => {
const dummyID = 'joplin-content-focus-dummy';
if (! document.getElementById(dummyID)) {
const focusDummy = '<div style="width: 0; height: 0; overflow: hidden"><a id="' + dummyID + '" href="#">focus dummy</a></div>';
contentElement.insertAdjacentHTML("afterbegin", focusDummy);
}
const scrollTop = contentElement.scrollTop;
document.getElementById(dummyID).focus();
contentElement.scrollTop = scrollTop;
}

ipc.setHtml = (event) => {
const html = event.html;

Expand Down

0 comments on commit 8de9032

Please sign in to comment.