|
1 | 1 | <template> |
2 | | - <div class="editor" :class="{ 'editor--editable': editable }"> |
| 2 | + <div |
| 3 | + class="editor" |
| 4 | + :class="{ |
| 5 | + 'editor--editable': editable, |
| 6 | + 'editor--link-cursor': hoverCursor, |
| 7 | + }" |
| 8 | + > |
3 | 9 | <bubble-menu |
4 | 10 | v-if="withExtensions" |
5 | 11 | ref="bubbleMenu" |
@@ -185,6 +191,7 @@ export default { |
185 | 191 | } |
186 | 192 |
|
187 | 193 | return { |
| 194 | + hoverCursor: false, |
188 | 195 | editor: new Editor({ |
189 | 196 | extensions: extensions, |
190 | 197 | content: this.value, |
@@ -259,13 +266,32 @@ export default { |
259 | 266 | }) |
260 | 267 | }, |
261 | 268 | }, |
| 269 | + mounted() { |
| 270 | + document.removeEventListener('keydown', this.specialKeyListeners) |
| 271 | + document.removeEventListener('keyup', this.specialKeyListeners) |
| 272 | + document.removeEventListener('contextmenu', this.specialMenuListeners) |
| 273 | + document.addEventListener('keydown', this.specialKeyListeners, { passive: true }) |
| 274 | + document.addEventListener('keyup', this.specialKeyListeners, { passive: true }) |
| 275 | + document.addEventListener('contextmenu', this.specialMenuListeners, { passive: true }) |
| 276 | + }, |
| 277 | + beforeDestroy() { |
| 278 | + document.removeEventListener('keydown', this.specialKeyListeners) |
| 279 | + document.removeEventListener('keyup', this.specialKeyListeners) |
| 280 | + document.removeEventListener('contextmenu', this.specialMenuListeners) |
| 281 | + }, |
262 | 282 | methods: { |
263 | 283 | focus() { |
264 | 284 | this.editor.commands.focus() |
265 | 285 | }, |
266 | 286 | onUpdate() { |
267 | 287 | this.$emit('input', this.html) |
268 | 288 | }, |
| 289 | + specialKeyListeners(event) { |
| 290 | + this.hoverCursor = event.metaKey || event.ctrlKey |
| 291 | + }, |
| 292 | + specialMenuListeners() { |
| 293 | + this.hoverCursor = false |
| 294 | + }, |
269 | 295 | }, |
270 | 296 | } |
271 | 297 | </script> |
@@ -364,4 +390,7 @@ div.editor:deep(.editor__content .ProseMirror li p:not(:last-child)) { |
364 | 390 | .editor.editor--editable:deep(.autolink) { |
365 | 391 | cursor: text; |
366 | 392 | } |
| 393 | +.editor.editor--link-cursor:deep(.autolink) { |
| 394 | + cursor: pointer; |
| 395 | +} |
367 | 396 | </style> |
0 commit comments