- Add run-workflow button to the LayerForge fullscreen editor and route it
through ComfyUI's native queue action when available.
- Switch fullscreen toolbar tooltips to the centralized tooltip manager.
- Generalize zoom-snapshot caching to viewport-snapshot caching so panning
can reuse the composited scene bitmap; schedule pan viewport updates
per display frame and clean up pending animations on teardown/blur.
- Preserve a stale processed-image fallback during transform/crop/wheel
transitions and always show the blend-area effect when enabled.
- Raise toast notifications to z-index 2147483647 so they stay above the
fullscreen editor and other application overlays.
Update the CI workflow to use actions/upload-artifact v6 instead of v4 for the Python coverage artifact upload. This keeps the workflow aligned with the current GitHub Actions runtime and avoids deprecated action versions.
Replace the old 1s promise-based wait loops with a single cancelable
requestAnimationFrame sync path so opening the Workflow Overview no
longer races ComfyUI's Vue Nodes 2.0 properties panel.
Access the Vue/Pinia canvas store directly and refresh its selected items
after native selection mutations. Make selection clearing repeatable so
ComfyUI can restore the selection while mounting the panel without
leaving the LayerForge node highlighted, and explicitly sync the final
empty selection state to the properties panel.
- Convert keyboard shortcuts help button to persistent click-toggle tooltip
- Add interactive, persistent, and onDismiss options to TooltipManager
- Dismiss persistent tooltips on outside pointerdown or Escape key
- Add delayed hide for interactive tooltips when leaving the target
- Update tooltip CSS for scrolling, interactive pointer-events, and text mode
Replace scattered inline tooltip implementations across canvas_view,
custom_shape_menu, layers_panel, batch_preview_manager, and notifications
with a single shared TooltipManager class.
- New src/utils/tooltip_manager.ts (and compiled js/utils/tooltip_manager.js)
provides observeRoot/bindTooltips/setTooltip/showTooltip/hideTooltip API
- Migrate title attributes to data-tooltip and normalize via MutationObserver
- Rename tooltip CSS from .lf-painter-tooltip/.lf-layerforge-tooltip to
.lf-global-tooltip and raise z-index to 1000001
- Remove duplicate matting-specific tooltip styles from canvas_view.css
- Update generated js/ outputs to match src/ changes
- Resolve mouse button in mask mode so middle-click pans instead of
inadvertently starting a mask draw, and cleanly end any active mask
stroke before panning.
- Redraw the mask brush cursor during pan so the brush outline stays
under the actual mouse position after the viewport transform changes.
- Reset interaction state on pointer up when leaving drawing modes so
stale interaction state cannot persist across gestures.
- Set the canvas cursor to grabbing when panning begins.