diff --git a/browser_tests/interaction.spec.ts b/browser_tests/interaction.spec.ts index a3c8540ea..c7fe22ed4 100644 --- a/browser_tests/interaction.spec.ts +++ b/browser_tests/interaction.spec.ts @@ -9,6 +9,17 @@ test.describe('Item Interaction', () => { await comfyPage.canvas.press('Delete') await expect(comfyPage.canvas).toHaveScreenshot('deleted-all.png') }) + + test('Can pin/unpin items with keyboard shortcut', async ({ comfyPage }) => { + await comfyPage.loadWorkflow('mixed_graph_items') + await comfyPage.canvas.press('Control+a') + await comfyPage.canvas.press('KeyP') + await comfyPage.nextFrame() + await expect(comfyPage.canvas).toHaveScreenshot('pinned-all.png') + await comfyPage.canvas.press('KeyP') + await comfyPage.nextFrame() + await expect(comfyPage.canvas).toHaveScreenshot('unpinned-all.png') + }) }) test.describe('Node Interaction', () => { diff --git a/browser_tests/interaction.spec.ts-snapshots/pinned-all-chromium-2x-linux.png b/browser_tests/interaction.spec.ts-snapshots/pinned-all-chromium-2x-linux.png new file mode 100644 index 000000000..f5b3f73b0 Binary files /dev/null and b/browser_tests/interaction.spec.ts-snapshots/pinned-all-chromium-2x-linux.png differ diff --git a/browser_tests/interaction.spec.ts-snapshots/pinned-all-chromium-linux.png b/browser_tests/interaction.spec.ts-snapshots/pinned-all-chromium-linux.png new file mode 100644 index 000000000..343fd29b8 Binary files /dev/null and b/browser_tests/interaction.spec.ts-snapshots/pinned-all-chromium-linux.png differ diff --git a/browser_tests/interaction.spec.ts-snapshots/unpinned-all-chromium-2x-linux.png b/browser_tests/interaction.spec.ts-snapshots/unpinned-all-chromium-2x-linux.png new file mode 100644 index 000000000..2df11af35 Binary files /dev/null and b/browser_tests/interaction.spec.ts-snapshots/unpinned-all-chromium-2x-linux.png differ diff --git a/browser_tests/interaction.spec.ts-snapshots/unpinned-all-chromium-linux.png b/browser_tests/interaction.spec.ts-snapshots/unpinned-all-chromium-linux.png new file mode 100644 index 000000000..bc8ced5ad Binary files /dev/null and b/browser_tests/interaction.spec.ts-snapshots/unpinned-all-chromium-linux.png differ diff --git a/package-lock.json b/package-lock.json index 60f35fc0a..1148d7b1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.3.32", "dependencies": { "@atlaskit/pragmatic-drag-and-drop": "^1.3.1", - "@comfyorg/litegraph": "^0.8.18", + "@comfyorg/litegraph": "^0.8.19", "@primevue/themes": "^4.0.5", "@vueuse/core": "^11.0.0", "axios": "^1.7.4", @@ -1911,9 +1911,9 @@ "dev": true }, "node_modules/@comfyorg/litegraph": { - "version": "0.8.18", - "resolved": "https://registry.npmjs.org/@comfyorg/litegraph/-/litegraph-0.8.18.tgz", - "integrity": "sha512-o00MjRX0Env8L8ppjjcE0MEtlgv1mT7D9mPtYzYkUm94u1jnBNpf55q7mXqgp3FkoH9lzpY2JyO87vfVXlgA9w==", + "version": "0.8.19", + "resolved": "https://registry.npmjs.org/@comfyorg/litegraph/-/litegraph-0.8.19.tgz", + "integrity": "sha512-SmeqvljlIwYFCIgdVnvUiPDzPXAt6oWXvh2RJHQZUqSnIxCB73yzHp6vBgz/SwU3PrEL0H14wQMeW8RkcMn9IQ==", "license": "MIT" }, "node_modules/@cspotcode/source-map-support": { diff --git a/package.json b/package.json index a0ede743b..443f07631 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ }, "dependencies": { "@atlaskit/pragmatic-drag-and-drop": "^1.3.1", - "@comfyorg/litegraph": "^0.8.18", + "@comfyorg/litegraph": "^0.8.19", "@primevue/themes": "^4.0.5", "@vueuse/core": "^11.0.0", "axios": "^1.7.4", diff --git a/src/stores/commandStore.ts b/src/stores/commandStore.ts index 59640b42e..404ce36c4 100644 --- a/src/stores/commandStore.ts +++ b/src/stores/commandStore.ts @@ -428,6 +428,19 @@ export const useCommandStore = defineStore('command', () => { }) } }, + { + id: 'Comfy.Canvas.ToggleSelected.Pin', + icon: 'pi pi-pin', + label: 'Pin/Unpin Selected Items', + versionAdded: '1.3.33', + function: () => { + for (const item of app.canvas.selectedItems) { + if (item instanceof LGraphNode || item instanceof LGraphGroup) { + item.pin(!item.pinned) + } + } + } + }, { id: 'Comfy.Canvas.ToggleSelectedNodes.Collapse', icon: 'pi pi-minus', diff --git a/src/stores/coreKeybindings.ts b/src/stores/coreKeybindings.ts index 30dc01fea..e46de85b4 100644 --- a/src/stores/coreKeybindings.ts +++ b/src/stores/coreKeybindings.ts @@ -134,7 +134,7 @@ export const CORE_KEYBINDINGS: Keybinding[] = [ combo: { key: 'p' }, - commandId: 'Comfy.Canvas.ToggleSelectedNodes.Pin', + commandId: 'Comfy.Canvas.ToggleSelected.Pin', targetSelector: '#graph-canvas' }, {