Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/text.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJulius Härtl <jus@bitgrid.net>2020-08-25 21:54:24 +0300
committerJulius Härtl <jus@bitgrid.net>2020-08-25 21:54:24 +0300
commit52a20e28ba01add51e9b28c8a7128dc2af340162 (patch)
treeae6cad1c1486a9859c3c21cbc96f553cff5540f6 /src
parent52397462525f4bc4414acf7ca40a015c1304abb3 (diff)
Move search handler for text to only trigger within the text input
Signed-off-by: Julius Härtl <jus@bitgrid.net>
Diffstat (limited to 'src')
-rw-r--r--src/components/EditorWrapper.vue11
-rw-r--r--src/extensions/Keymap.js21
2 files changed, 20 insertions, 12 deletions
diff --git a/src/components/EditorWrapper.vue b/src/components/EditorWrapper.vue
index 802783ef8..54c6eeb2e 100644
--- a/src/components/EditorWrapper.vue
+++ b/src/components/EditorWrapper.vue
@@ -233,14 +233,12 @@ export default {
this.saveStatusPolling = setInterval(() => {
this.updateLastSavedStatus()
}, 2000)
- document.addEventListener('keydown', this._keyUpHandler, true)
},
beforeDestroy() {
this.close()
},
methods: {
async close() {
- document.removeEventListener('keydown', this._keyUpHandler, true)
clearInterval(this.saveStatusPolling)
if (this.currentSession && this.syncService) {
try {
@@ -326,7 +324,7 @@ export default {
},
}),
new Keymap({
- 'Ctrl-s': () => {
+ 'Mod-s': () => {
this.syncService.save()
return true
},
@@ -465,13 +463,6 @@ export default {
}
}
},
- _keyUpHandler(event) {
- const key = event.key || event.keyCode
- if ((event.ctrlKey || event.metaKey) && !event.shiftKey && (key === 'f' || key === 70)) {
- event.stopPropagation()
- return true
- }
- },
},
}
</script>
diff --git a/src/extensions/Keymap.js b/src/extensions/Keymap.js
index f5e74755e..7d98f889d 100644
--- a/src/extensions/Keymap.js
+++ b/src/extensions/Keymap.js
@@ -20,16 +20,33 @@
*
*/
-import { Extension } from 'tiptap'
+import { Extension, Plugin } from 'tiptap'
export default class Keymap extends Extension {
get name() {
- return 'save'
+ return 'customkeymap'
}
keys({ schema }) {
return this.options
}
+ get plugins() {
+ return [new Plugin({
+ props: {
+ handleKeyDown(view, event) {
+ const key = event.key || event.keyCode
+ if ((event.ctrlKey || event.metaKey) && !event.shiftKey && (key === 'f' || key === 70)) {
+ // We need to stop propagation and dispatch the event on the window
+ // in order to force triggering the browser native search in the text editor
+ event.stopPropagation()
+ window.dispatchEvent(event)
+ return true
+ }
+ },
+ },
+ })]
+ }
+
}