Skip to content

Commit 52a20e2

Browse files
committed
Move search handler for text to only trigger within the text input
Signed-off-by: Julius Härtl <[email protected]>
1 parent 5239746 commit 52a20e2

File tree

2 files changed

+20
-12
lines changed

2 files changed

+20
-12
lines changed

src/components/EditorWrapper.vue

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -233,14 +233,12 @@ export default {
233233
this.saveStatusPolling = setInterval(() => {
234234
this.updateLastSavedStatus()
235235
}, 2000)
236-
document.addEventListener('keydown', this._keyUpHandler, true)
237236
},
238237
beforeDestroy() {
239238
this.close()
240239
},
241240
methods: {
242241
async close() {
243-
document.removeEventListener('keydown', this._keyUpHandler, true)
244242
clearInterval(this.saveStatusPolling)
245243
if (this.currentSession && this.syncService) {
246244
try {
@@ -326,7 +324,7 @@ export default {
326324
},
327325
}),
328326
new Keymap({
329-
'Ctrl-s': () => {
327+
'Mod-s': () => {
330328
this.syncService.save()
331329
return true
332330
},
@@ -465,13 +463,6 @@ export default {
465463
}
466464
}
467465
},
468-
_keyUpHandler(event) {
469-
const key = event.key || event.keyCode
470-
if ((event.ctrlKey || event.metaKey) && !event.shiftKey && (key === 'f' || key === 70)) {
471-
event.stopPropagation()
472-
return true
473-
}
474-
},
475466
},
476467
}
477468
</script>

src/extensions/Keymap.js

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,33 @@
2020
*
2121
*/
2222

23-
import { Extension } from 'tiptap'
23+
import { Extension, Plugin } from 'tiptap'
2424

2525
export default class Keymap extends Extension {
2626

2727
get name() {
28-
return 'save'
28+
return 'customkeymap'
2929
}
3030

3131
keys({ schema }) {
3232
return this.options
3333
}
3434

35+
get plugins() {
36+
return [new Plugin({
37+
props: {
38+
handleKeyDown(view, event) {
39+
const key = event.key || event.keyCode
40+
if ((event.ctrlKey || event.metaKey) && !event.shiftKey && (key === 'f' || key === 70)) {
41+
// We need to stop propagation and dispatch the event on the window
42+
// in order to force triggering the browser native search in the text editor
43+
event.stopPropagation()
44+
window.dispatchEvent(event)
45+
return true
46+
}
47+
},
48+
},
49+
})]
50+
}
51+
3552
}

0 commit comments

Comments
 (0)