Skip to content

Conversation

@benceruleanlu
Copy link
Member

@benceruleanlu benceruleanlu commented Nov 5, 2025

Summary

  • Forward wheel events to canvas unless a wheel-capturing element is focused.
  • Improves two-finger panning/scroll UX over inputs until the widget is actively focused.

Changes

  • Introduce wheelCapturedByFocusedElement(event) to gate wheel capture on focus.
  • Update handleWheel and forwardEventToCanvas in src/renderer/core/canvas/useCanvasInteractions.ts to honor capture only when focused.

Diff

  • 1 file changed: src/renderer/core/canvas/useCanvasInteractions.ts
  • 19 insertions, 15 deletions

Reason for Draft

  • Marking as DRAFT because this touches important canvas interaction code and currently does not have test coverage.

Checks

  • pnpm lint:fix and pnpm typecheck ran successfully locally.

┆Issue is synchronized with this Notion page by Unito

@github-actions
Copy link

github-actions bot commented Nov 5, 2025

🎭 Playwright Test Results

⚠️ Tests passed with flaky tests

⏰ Completed at: 11/13/2025, 02:10:18 AM UTC

📈 Summary

  • Total Tests: 497
  • Passed: 462 ✅
  • Failed: 0
  • Flaky: 5 ⚠️
  • Skipped: 30 ⏭️

📊 Test Reports by Browser

  • chromium: View Report • ✅ 453 / ❌ 0 / ⚠️ 5 / ⏭️ 30
  • chromium-2x: View Report • ✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • chromium-0.5x: View Report • ✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • mobile-chrome: View Report • ✅ 6 / ❌ 0 / ⚠️ 0 / ⏭️ 0

🎉 Click on the links above to view detailed test results for each browser configuration.

@github-actions
Copy link

github-actions bot commented Nov 5, 2025

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 11/13/2025, 01:59:44 AM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

github-actions bot commented Nov 5, 2025

Bundle Size Report

Summary

  • Raw size: 13.6 MB baseline 13.6 MB — 🔴 +179 B
  • Gzip: 2.73 MB baseline 2.73 MB — 🔴 +19 B
  • Brotli: 2.15 MB baseline 2.15 MB — 🟢 -26 B
  • Bundles: 89 current • 89 baseline • 35 added / 35 removed

Category Glance
App Entry Points 🔴 +179 B (2.93 MB) · Vendor & Third-Party ⚪ 0 B (5.32 MB) · Other ⚪ 0 B (3.92 MB) · Graph Workspace ⚪ 0 B (799 kB) · Panels & Settings ⚪ 0 B (306 kB) · UI Components ⚪ 0 B (266 kB) · + 3 more

Per-category breakdown
App Entry Points — 2.93 MB (baseline 2.93 MB) • 🔴 +179 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-CyXTK_Mr.js (new) 2.54 MB 🔴 +2.54 MB 🔴 +535 kB 🔴 +407 kB
assets/index-CK57YsU9.js (removed) 2.54 MB 🟢 -2.54 MB 🟢 -535 kB 🟢 -407 kB
assets/index-B54yGq-M.js (removed) 386 kB 🟢 -386 kB 🟢 -77.9 kB 🟢 -63.1 kB
assets/index-BScGRnRc.js (new) 386 kB 🔴 +386 kB 🔴 +77.9 kB 🔴 +63.1 kB
assets/index-CBmyhUZK.js (new) 1.75 kB 🔴 +1.75 kB 🔴 +575 B 🔴 +488 B
assets/index-Cc6Hs-pG.js (removed) 1.75 kB 🟢 -1.75 kB 🟢 -575 B 🟢 -486 B
assets/index-BTHS6RHg.js (removed) 476 B 🟢 -476 B 🟢 -288 B 🟢 -242 B
assets/index-XKH0Ibdq.js (new) 476 B 🔴 +476 B 🔴 +287 B 🔴 +242 B

Status: 4 added / 4 removed

Graph Workspace — 799 kB (baseline 799 kB) • ⚪ 0 B

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-DM0LtWgu.js (new) 799 kB 🔴 +799 kB 🔴 +156 kB 🔴 +120 kB
assets/GraphView-unVC30JP.js (removed) 799 kB 🟢 -799 kB 🟢 -156 kB 🟢 -120 kB

Status: 1 added / 1 removed

Views & Navigation — 8 kB (baseline 8 kB) • ⚪ 0 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/UserSelectView-BRCOQjrC.js (new) 8 kB 🔴 +8 kB 🔴 +2.43 kB 🔴 +2.13 kB
assets/UserSelectView-Qvwmy4MO.js (removed) 8 kB 🟢 -8 kB 🟢 -2.43 kB 🟢 -2.13 kB

Status: 1 added / 1 removed

Panels & Settings — 306 kB (baseline 306 kB) • ⚪ 0 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/CreditsPanel-Bs9t_k_S.js (new) 22.9 kB 🔴 +22.9 kB 🔴 +5.43 kB 🔴 +4.75 kB
assets/CreditsPanel-gMq1_PTV.js (removed) 22.9 kB 🟢 -22.9 kB 🟢 -5.43 kB 🟢 -4.75 kB
assets/KeybindingPanel-BvQSB19e.js (new) 15.1 kB 🔴 +15.1 kB 🔴 +3.73 kB 🔴 +3.29 kB
assets/KeybindingPanel-DSPQJhkZ.js (removed) 15.1 kB 🟢 -15.1 kB 🟢 -3.73 kB 🟢 -3.28 kB
assets/ExtensionPanel-DfeJ2taw.js (removed) 11.9 kB 🟢 -11.9 kB 🟢 -2.79 kB 🟢 -2.45 kB
assets/ExtensionPanel-DRipXFgw.js (new) 11.9 kB 🔴 +11.9 kB 🔴 +2.79 kB 🔴 +2.45 kB
assets/AboutPanel-B6ivOwmx.js (removed) 10.1 kB 🟢 -10.1 kB 🟢 -2.62 kB 🟢 -2.31 kB
assets/AboutPanel-Dbg9rwn2.js (new) 10.1 kB 🔴 +10.1 kB 🔴 +2.62 kB 🔴 +2.32 kB
assets/ServerConfigPanel-_X72evHA.js (new) 8.05 kB 🔴 +8.05 kB 🔴 +2.12 kB 🔴 +1.88 kB
assets/ServerConfigPanel-PRfCnQxk.js (removed) 8.05 kB 🟢 -8.05 kB 🟢 -2.12 kB 🟢 -1.88 kB
assets/UserPanel-BFFH6F0C.js (removed) 7.76 kB 🟢 -7.76 kB 🟢 -2.02 kB 🟢 -1.77 kB
assets/UserPanel-DFSnkbNK.js (new) 7.76 kB 🔴 +7.76 kB 🔴 +2.02 kB 🔴 +1.77 kB
assets/settings-BXTtSH4O.js 33.3 kB 33.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-C9Pzn-NG.js 25.2 kB 25.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CCy2fA_h.js 27.3 kB 27.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CQpqEFfl.js 26.6 kB 26.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DHcnxypw.js 21.7 kB 21.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DhFTK9fY.js 25.1 kB 25.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DlT4t_ui.js 25.9 kB 25.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DRgSrIdD.js 24.2 kB 24.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-tjkeqiZq.js 21.1 kB 21.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 6 added / 6 removed

UI Components — 266 kB (baseline 266 kB) • ⚪ 0 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/Load3D.vue_vue_type_script_setup_true_lang-BvU7Poob.js (new) 185 kB 🔴 +185 kB 🔴 +31.9 kB 🔴 +25.9 kB
assets/Load3D.vue_vue_type_script_setup_true_lang-DCzFdhLw.js (removed) 185 kB 🟢 -185 kB 🟢 -31.9 kB 🟢 -25.9 kB
assets/WidgetSelect.vue_vue_type_script_setup_true_lang-CGaQBRti.js (removed) 48 kB 🟢 -48 kB 🟢 -10.4 kB 🟢 -9 kB
assets/WidgetSelect.vue_vue_type_script_setup_true_lang-DeO_D0ii.js (new) 48 kB 🔴 +48 kB 🔴 +10.4 kB 🔴 +9.02 kB
assets/ComfyQueueButton-BGcsL3ze.js (removed) 11.1 kB 🟢 -11.1 kB 🟢 -2.78 kB 🟢 -2.46 kB
assets/ComfyQueueButton-C94hIA-X.js (new) 11.1 kB 🔴 +11.1 kB 🔴 +2.78 kB 🔴 +2.46 kB
assets/WidgetSelectButton-BSBnpUzj.js (removed) 6.56 kB 🟢 -6.56 kB 🟢 -1.94 kB 🟢 -1.7 kB
assets/WidgetSelectButton-D5HAvC0r.js (new) 6.56 kB 🔴 +6.56 kB 🔴 +1.94 kB 🔴 +1.7 kB
assets/WidgetLayoutField.vue_vue_type_script_setup_true_lang-BiiBrJDZ.js (removed) 2.17 kB 🟢 -2.17 kB 🟢 -822 B 🟢 -719 B
assets/WidgetLayoutField.vue_vue_type_script_setup_true_lang-Dxpm32nE.js (new) 2.17 kB 🔴 +2.17 kB 🔴 +820 B 🔴 +718 B
assets/LazyImage.vue_vue_type_script_setup_true_lang-CYFSl-yC.js 10.7 kB 10.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/UserAvatar.vue_vue_type_script_setup_true_lang-D2s8tnS2.js 1.26 kB 1.26 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-ByrPd5jr.js 1.62 kB 1.62 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 5 added / 5 removed

Data & Services — 12.6 kB (baseline 12.6 kB) • ⚪ 0 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/keybindingService-1Lw58h0q.js (removed) 7.6 kB 🟢 -7.6 kB 🟢 -1.85 kB 🟢 -1.59 kB
assets/keybindingService-ZNbLboGY.js (new) 7.6 kB 🔴 +7.6 kB 🔴 +1.84 kB 🔴 +1.59 kB
assets/audioService-CBNYFRzf.js (removed) 2.2 kB 🟢 -2.2 kB 🟢 -964 B 🟢 -824 B
assets/audioService-XldOrp3g.js (new) 2.2 kB 🔴 +2.2 kB 🔴 +959 B 🔴 +822 B
assets/serverConfigStore-CSC1Jwyz.js 2.79 kB 2.79 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 2 added / 2 removed

Utilities & Hooks — 5.87 kB (baseline 5.87 kB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/audioUtils-BQbAxBC8.js (removed) 1.41 kB 🟢 -1.41 kB 🟢 -653 B 🟢 -551 B
assets/audioUtils-D5tZG1C2.js (new) 1.41 kB 🔴 +1.41 kB 🔴 +652 B 🔴 +547 B
assets/mathUtil-CTARWQ-l.js 1.07 kB 1.07 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeFilterUtil-CXKCRJ-m.js 460 B 460 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/useTransformCompatOverlayProps-YaCpDdzr.js 486 B 486 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/useWidgetValue-IC6pgigJ.js 2.45 kB 2.45 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 1 added / 1 removed

Vendor & Third-Party — 5.32 MB (baseline 5.32 MB) • ⚪ 0 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-other-DC3ww4lS.js 3.22 MB 3.22 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-PESgPnbc.js 517 B 517 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-aR6ntw5X.js 1.37 MB 1.37 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-D5vdTa2Y.js 232 kB 232 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-C80SsSPi.js 92.6 kB 92.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-BZLod3g9.js 407 kB 407 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 3.92 MB (baseline 3.92 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/WidgetRecordAudio-DqNRdJmf.js (new) 22.1 kB 🔴 +22.1 kB 🔴 +5.57 kB 🔴 +4.92 kB
assets/WidgetRecordAudio-NuKzx1BU.js (removed) 22.1 kB 🟢 -22.1 kB 🟢 -5.57 kB 🟢 -4.93 kB
assets/AudioPreviewPlayer-BWh89T9i.js (removed) 14.9 kB 🟢 -14.9 kB 🟢 -3.71 kB 🟢 -3.31 kB
assets/AudioPreviewPlayer-Ey3D6hsl.js (new) 14.9 kB 🔴 +14.9 kB 🔴 +3.71 kB 🔴 +3.31 kB
assets/WidgetInputNumber-D9urM1A3.js (new) 14.8 kB 🔴 +14.8 kB 🔴 +3.78 kB 🔴 +3.33 kB
assets/WidgetInputNumber-Dl19lXka.js (removed) 14.8 kB 🟢 -14.8 kB 🟢 -3.78 kB 🟢 -3.33 kB
assets/WidgetGalleria-B_-Ubpgx.js (new) 5.59 kB 🔴 +5.59 kB 🔴 +1.74 kB 🔴 +1.53 kB
assets/WidgetGalleria-D1kFk8X6.js (removed) 5.59 kB 🟢 -5.59 kB 🟢 -1.74 kB 🟢 -1.54 kB
assets/WidgetColorPicker-CJcQOJ26.js (removed) 4.87 kB 🟢 -4.87 kB 🟢 -1.67 kB 🟢 -1.47 kB
assets/WidgetColorPicker-DkDsR7-a.js (new) 4.87 kB 🔴 +4.87 kB 🔴 +1.67 kB 🔴 +1.46 kB
assets/WidgetMarkdown-Bk5jq6xc.js (removed) 4.85 kB 🟢 -4.85 kB 🟢 -1.69 kB 🟢 -1.46 kB
assets/WidgetMarkdown-Bl_w5L-L.js (new) 4.85 kB 🔴 +4.85 kB 🔴 +1.69 kB 🔴 +1.46 kB
assets/WidgetAudioUI-B18EQwqy.js (new) 4.45 kB 🔴 +4.45 kB 🔴 +1.48 kB 🔴 +1.32 kB
assets/WidgetAudioUI-Bw_DTenj.js (removed) 4.45 kB 🟢 -4.45 kB 🟢 -1.48 kB 🟢 -1.32 kB
assets/WidgetMultiSelect-BnwT7nAG.js (removed) 4.26 kB 🟢 -4.26 kB 🟢 -1.44 kB 🟢 -1.26 kB
assets/WidgetMultiSelect-zGyVjCXl.js (new) 4.26 kB 🔴 +4.26 kB 🔴 +1.44 kB 🔴 +1.26 kB
assets/WidgetTreeSelect-CSrjuIiJ.js (removed) 3.99 kB 🟢 -3.99 kB 🟢 -1.36 kB 🟢 -1.19 kB
assets/WidgetTreeSelect-DD2PpThT.js (new) 3.99 kB 🔴 +3.99 kB 🔴 +1.36 kB 🔴 +1.2 kB
assets/WidgetTextarea-B09-W8Wl.js (removed) 3.7 kB 🟢 -3.7 kB 🟢 -1.28 kB 🟢 -1.12 kB
assets/WidgetTextarea-BJ34O7kU.js (new) 3.7 kB 🔴 +3.7 kB 🔴 +1.28 kB 🔴 +1.12 kB
assets/WidgetInputText-C531cvTl.js (new) 3.62 kB 🔴 +3.62 kB 🔴 +1.26 kB 🔴 +1.12 kB
assets/WidgetInputText-P2_wD311.js (removed) 3.62 kB 🟢 -3.62 kB 🟢 -1.26 kB 🟢 -1.12 kB
assets/WidgetToggleSwitch-BpQuyn2g.js (removed) 3.59 kB 🟢 -3.59 kB 🟢 -1.24 kB 🟢 -1.08 kB
assets/WidgetToggleSwitch-CtEw3wlW.js (new) 3.59 kB 🔴 +3.59 kB 🔴 +1.23 kB 🔴 +1.08 kB
assets/WidgetSelect-CMY48_xV.js (removed) 2.29 kB 🟢 -2.29 kB 🟢 -719 B 🟢 -610 B
assets/WidgetSelect-CV_WX_JJ.js (new) 2.29 kB 🔴 +2.29 kB 🔴 +716 B 🔴 +616 B
assets/Load3D-CLDk8YEd.js (removed) 2.01 kB 🟢 -2.01 kB 🟢 -606 B 🟢 -519 B
assets/Load3D-DjdEQMbS.js (new) 2.01 kB 🔴 +2.01 kB 🔴 +605 B 🔴 +540 B
assets/WidgetLegacy-BDBstWAS.js (new) 1.91 kB 🔴 +1.91 kB 🔴 +556 B 🔴 +490 B
assets/WidgetLegacy-CixTkiyQ.js (removed) 1.91 kB 🟢 -1.91 kB 🟢 -557 B 🟢 -466 B
assets/commands-_6uSNVYB.js 14.9 kB 14.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BaAvtVOT.js 14.7 kB 14.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-BRKOlMPq.js 15.4 kB 15.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-C1kmJUO0.js 14.9 kB 14.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CHLkz7NH.js 17.4 kB 17.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-cLsDwHMQ.js 14 kB 14 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Ct50VUT9.js 16.2 kB 16.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DOEnM922.js 14.1 kB 14.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Ds4Sq2CW.js 15.7 kB 15.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-B5EMde6-.js 87.4 kB 87.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BKoYD913.js 74.9 kB 74.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CeA0R4PH.js 89.7 kB 89.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DA153URE.js 118 kB 118 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DKV1oi75.js 75.9 kB 75.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DnrAsD7B.js 86.4 kB 86.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Dp2swbwt.js 97.5 kB 97.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-DyEX8-0-.js 84.8 kB 84.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Dyv_V5U_.js 103 kB 103 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BmKVW4RM.js 310 kB 310 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-C3rYGEhE.js 309 kB 309 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CH725Yms.js 313 kB 313 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CWehufgr.js 346 kB 346 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-D5C-oVW3.js 372 kB 372 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DDQv04zd.js 306 kB 306 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DQ9N8oPA.js 288 kB 288 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-DrmdVCrq.js 285 kB 285 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-mAU64lY-.js 320 kB 320 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-4dlndULn.js 2.44 kB 2.44 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetFileUpload-Cx6dGznS.js 11.9 kB 11.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-Ds3K3ULR.js 2.15 kB 2.15 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-BIbGSUAt.js 1.28 kB 1.28 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 15 added / 15 removed

@benceruleanlu
Copy link
Member Author

@DrJKL did you want to take over this? I can open if needed, or feel free to let me know if you opened your own PR

I didn't open this because I wanted to add some tests for this since it touches a pretty hot path, but I tested manually and it works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants