aboutsummaryrefslogtreecommitdiffstats
path: root/src/electron/webview-ime-focus.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/electron/webview-ime-focus.js')
-rw-r--r--src/electron/webview-ime-focus.js41
1 files changed, 0 insertions, 41 deletions
diff --git a/src/electron/webview-ime-focus.js b/src/electron/webview-ime-focus.js
deleted file mode 100644
index e187ee0b4..000000000
--- a/src/electron/webview-ime-focus.js
+++ /dev/null
@@ -1,41 +0,0 @@
1import { webContents } from '@electron/remote';
2import { releaseDocumentFocus } from './webview-ime-focus-helpers';
3
4function giveWebviewDocumentFocus(element) {
5 releaseDocumentFocus();
6
7 window.requestAnimationFrame(() => {
8 element.send('claim-document-focus');
9 });
10}
11
12function elementIsUnfocusedWebview(element) {
13 return element.tagName === 'WEBVIEW' && !webContents.fromId(element.getWebContentsId()).isFocused();
14}
15
16function webviewDidAutofocus(element) {
17 function didKeyDown() {
18 element.removeEventListener('keydown', didKeyDown, true);
19 giveWebviewDocumentFocus(element);
20 }
21
22 element.addEventListener('keydown', didKeyDown, true);
23}
24
25function handleAutofocus(element) {
26 element.addEventListener('ipc-message', (event) => {
27 if (event.channel === 'autofocus') {
28 element.focus();
29 webviewDidAutofocus(element);
30 }
31 });
32}
33
34function didMouseDown(event) {
35 if (elementIsUnfocusedWebview(event.target)) {
36 giveWebviewDocumentFocus(event.target);
37 }
38}
39
40document.addEventListener('mousedown', didMouseDown, true);
41document.querySelectorAll('webview').forEach(handleAutofocus);