fix(editor): Fix keyboard shortcut bugs in the log view (#16393)

This commit is contained in:
Suguru Inoue
2025-06-17 11:38:32 +02:00
committed by GitHub
parent 9805bd3a6d
commit 4acebabb4f
5 changed files with 60 additions and 37 deletions

View File

@@ -6,7 +6,7 @@ import { useCanvasNodeHover } from '@/composables/useCanvasNodeHover';
import { useCanvasTraversal } from '@/composables/useCanvasTraversal';
import type { ContextMenuAction, ContextMenuTarget } from '@/composables/useContextMenu';
import { useContextMenu } from '@/composables/useContextMenu';
import { useKeybindings } from '@/composables/useKeybindings';
import { type KeyMap, useKeybindings } from '@/composables/useKeybindings';
import type { PinDataSource } from '@/composables/usePinnedData';
import { CanvasKey } from '@/constants';
import type { NodeCreatorOpenSource } from '@/Interface';
@@ -54,6 +54,7 @@ import CanvasArrowHeadMarker from './elements/edges/CanvasArrowHeadMarker.vue';
import Edge from './elements/edges/CanvasEdge.vue';
import Node from './elements/nodes/CanvasNode.vue';
import { useViewportAutoAdjust } from '@/components/canvas/composables/useViewportAutoAdjust';
import { isOutsideSelected } from '@/utils/htmlUtils';
const $style = useCssModule();
@@ -278,9 +279,12 @@ function selectUpstreamNodes(id: string) {
}
const keyMap = computed(() => {
const readOnlyKeymap = {
const readOnlyKeymap: KeyMap = {
ctrl_shift_o: emitWithLastSelectedNode((id) => emit('open:sub-workflow', id)),
ctrl_c: emitWithSelectedNodes((ids) => emit('copy:nodes', ids)),
ctrl_c: {
disabled: () => isOutsideSelected(viewportRef.value),
run: emitWithSelectedNodes((ids) => emit('copy:nodes', ids)),
},
enter: emitWithLastSelectedNode((id) => onSetNodeActivated(id)),
ctrl_a: () => addSelectedNodes(graphNodes.value),
// Support both key and code for zooming in and out
@@ -301,7 +305,7 @@ const keyMap = computed(() => {
if (props.readOnly) return readOnlyKeymap;
const fullKeymap = {
const fullKeymap: KeyMap = {
...readOnlyKeymap,
ctrl_x: emitWithSelectedNodes((ids) => emit('cut:nodes', ids)),
'delete|backspace': emitWithSelectedNodes((ids) => emit('delete:nodes', ids)),