Skip to content

Fix Dual Output folder imports and canvas interactions - #6180

Open
aleksandr-voitenko wants to merge 1 commit into
stagingfrom
fix-vertical-canvas-elements-import
Open

aleksandr-voitenko wants to merge 1 commit into
stagingfrom
fix-vertical-canvas-elements-import

Conversation

@aleksandr-voitenko

@aleksandr-voitenko aleksandr-voitenko commented Sep 14, 2026

Copy link
Copy Markdown
Collaborator

Motivation

Imported Dual Output overlays such as Harmony could leave vertical folders empty, making folder visibility controls ineffective. Attempting to drag a folder could then disable moving and resizing across scenes, including previously working sources.

Visually it looks like this.

image

Context

Source reconciliation recreated vertical items beside their horizontal partners, unintentionally inheriting the horizontal folder. Validation could also remove valid partner-map entries when processing vertical items first.

Additionally, folder dragging assumed the last selected node was an item. An empty folder could therefore cause an exception while accessing its rectangle. The renderer only released its shared mouse-move guard after successful requests, so that exception blocked subsequent canvas interactions.

Changes

  • Preserve authored parents and node order when replacing vertical items, and retain valid partner mappings regardless of traversal order.
  • Repair saved items parented to the opposite canvas through unambiguous folder pairs, preserving transforms, visibility, and locks.
  • Release validation loading state on errors and early returns.
  • Anchor dragging to the selected item under the pointer and ignore movement events from the other canvas.
  • Recover mouse dispatch after synchronous or asynchronous failures, discard stale queued moves, and preserve each queued event’s canvas and coordinates.
  • Add 11 regression tests covering import, collection reload, native visibility and stacking, dragging, undo/redo, scene-switch resizing, and dispatch recovery.

Existing collections are repaired during loading. Intentionally hidden items retain their saved visibility.

@bundlemon

bundlemon Bot commented Sep 14, 2026

Copy link
Copy Markdown

BundleMon

Files added (4)
Status Path Size Limits
renderer.(hash).js
+10.53MB -
vendors~renderer.(hash).js
+4.67MB -
updater.js
+115.29KB -
guest-api.js
+40.23KB -

Total files change +15.35MB

Final result: ✅

View report in BundleMon website ➡️


Current branch size history

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.

2 participants