Skip to content

Commit

Permalink
Mac Stuff (#2069)
Browse files Browse the repository at this point in the history
* add delete and select all to the nodes menu

* use proper delete and multiselect keycode on mac
  • Loading branch information
stonerl committed Aug 8, 2023
1 parent 17c5de5 commit 1dc6422
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 2 deletions.
30 changes: 30 additions & 0 deletions src/main/gui/menu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,36 @@ export const setMainMenu = ({ mainWindow, menuData, enabled = false }: MainMenuA
},
enabled,
},
{
label: 'Delete',
click: () => {
mainWindow.webContents.sendInputEvent({
type: 'keyDown',
keyCode: 'Backspace',
modifiers: ['cmd'],
});
mainWindow.webContents.sendInputEvent({
type: 'keyUp',
keyCode: 'Backspace',
modifiers: ['cmd'],
});
},
},
{
label: 'Select All',
click: () => {
mainWindow.webContents.sendInputEvent({
type: 'keyDown',
keyCode: 'a',
modifiers: ['cmd'],
});
mainWindow.webContents.sendInputEvent({
type: 'keyUp',
keyCode: 'a',
modifiers: ['cmd'],
});
},
},
{ type: 'separator' },
{
label: 'Duplicate',
Expand Down
11 changes: 9 additions & 2 deletions src/renderer/components/ReactFlowBox.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import ReactFlow, {
} from 'reactflow';
import { useContext, useContextSelector } from 'use-context-selector';
import { EdgeData, NodeData } from '../../common/common-types';
import { isMac } from '../../common/env';
import { log } from '../../common/log';
import { getFirstPossibleInput, getFirstPossibleOutput } from '../../common/nodes/connectedInputs';
import {
Expand Down Expand Up @@ -609,6 +610,12 @@ export const ReactFlowBox = memo(({ wrapperRef, nodeTypes, edgeTypes }: ReactFlo
[selectionMenu, setSelectedNodes]
);

const multiSelectionKeyCode = useMemo(() => (isMac ? ['Meta'] : ['Control']), []);
const deleteKeyCode = useMemo(
() => (isMac ? ['Backspace', 'Meta+Backspace'] : ['Backspace', 'Delete']),
[]
);

return (
<Box
bg="var(--chain-editor-bg)"
Expand All @@ -622,14 +629,14 @@ export const ReactFlowBox = memo(({ wrapperRef, nodeTypes, edgeTypes }: ReactFlo
<ReactFlow
connectionLineContainerStyle={{ zIndex: 1000 }}
connectionRadius={15}
deleteKeyCode={useMemo(() => ['Backspace', 'Delete'], [])}
deleteKeyCode={deleteKeyCode}
edgeTypes={edgeTypes}
edges={displayEdges}
elevateEdgesOnSelect={false}
elevateNodesOnSelect={false}
maxZoom={8}
minZoom={0.125}
multiSelectionKeyCode={useMemo(() => ['Control', 'Meta'], [])}
multiSelectionKeyCode={multiSelectionKeyCode}
nodeTypes={nodeTypes}
nodes={displayNodes}
snapGrid={useMemoArray<[number, number]>([snapToGridAmount, snapToGridAmount])}
Expand Down

0 comments on commit 1dc6422

Please sign in to comment.