diff options
Diffstat (limited to 'src/electron/webview-ime-focus.js')
-rw-r--r-- | src/electron/webview-ime-focus.js | 41 |
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 @@ | |||
1 | import { webContents } from '@electron/remote'; | ||
2 | import { releaseDocumentFocus } from './webview-ime-focus-helpers'; | ||
3 | |||
4 | function giveWebviewDocumentFocus(element) { | ||
5 | releaseDocumentFocus(); | ||
6 | |||
7 | window.requestAnimationFrame(() => { | ||
8 | element.send('claim-document-focus'); | ||
9 | }); | ||
10 | } | ||
11 | |||
12 | function elementIsUnfocusedWebview(element) { | ||
13 | return element.tagName === 'WEBVIEW' && !webContents.fromId(element.getWebContentsId()).isFocused(); | ||
14 | } | ||
15 | |||
16 | function webviewDidAutofocus(element) { | ||
17 | function didKeyDown() { | ||
18 | element.removeEventListener('keydown', didKeyDown, true); | ||
19 | giveWebviewDocumentFocus(element); | ||
20 | } | ||
21 | |||
22 | element.addEventListener('keydown', didKeyDown, true); | ||
23 | } | ||
24 | |||
25 | function handleAutofocus(element) { | ||
26 | element.addEventListener('ipc-message', (event) => { | ||
27 | if (event.channel === 'autofocus') { | ||
28 | element.focus(); | ||
29 | webviewDidAutofocus(element); | ||
30 | } | ||
31 | }); | ||
32 | } | ||
33 | |||
34 | function didMouseDown(event) { | ||
35 | if (elementIsUnfocusedWebview(event.target)) { | ||
36 | giveWebviewDocumentFocus(event.target); | ||
37 | } | ||
38 | } | ||
39 | |||
40 | document.addEventListener('mousedown', didMouseDown, true); | ||
41 | document.querySelectorAll('webview').forEach(handleAutofocus); | ||