Drag feedback: floating ghost card + lifted palette entry - #2
Merged
Merged
Conversation
Grabbing a Source previously gave zero visual feedback — Avalonia's DragDrop renders no native drag image, so nothing appeared to move. - A ghost card (accent border, waveform icon, Source title) now floats under the pointer for the whole drag, with a quick scale pop on lift-off. It lives in the TopLevel OverlayLayer and follows DragOver events, listened on the TopLevel with handledEventsToo since columns handle their own. - The board root sets DragDrop.AllowDrop so DragOver keeps firing between columns and the ghost never freezes; drops outside a column are refused there with a no-drop cursor. - The grabbed palette entry dims and sinks slightly (accent tint, scale 0.97) while its ghost is in flight, and restores on release. - DragSourceBehavior gains a DragLabel attached property (bound to the Source title) to feed the ghost; ghost teardown is in a finally so a failed drop can't strand it. - The --screenshot tool stages the full mid-drag look (dimmed entry, ghost over the highlighted column) for docs/screenshots/board-dragover.png. Build, 65 tests, --smoke and --smoke-ui all pass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jac4PWhnEzh7j5f5NaafJ1
GitHub Actions workflow (ubuntu-latest, .NET 10) running on pushes to main and on every PR: - dotnet restore / build (Release) / test (65 unit tests) - the two window-free smoke checks (--smoke viewmodel flows, --smoke-ui headless render with binding-error detection) - renders the board via --screenshot (headless Skia) and uploads the PNGs as a build artifact, so every PR carries an up-to-date visual of the UI it ships Linux-only by design — AutoRoute targets PipeWire/WirePlumber. Superseded runs on the same ref are cancelled. CI badge added to the README. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jac4PWhnEzh7j5f5NaafJ1
- scripts/build-appimage.sh publishes a self-contained linux-x64 build into an AppDir (AppRun, desktop file, icon, /usr/bin/autoroute symlink) and packs it with appimagetool (downloaded on demand, FUSE-less via --appimage-extract-and-run). Self-contained means no .NET dependency at runtime; the glibc floor comes from Microsoft's runtime binaries, not the build machine. - CI gains an "AppImage (linux-x64)" job after the main job: builds the image, boots it for --smoke and --smoke-ui, and uploads it as the AutoRoute-AppImage artifact on every PR. - New release workflow: pushing a v* tag builds + smoke-tests the AppImage and attaches it to an auto-generated GitHub Release. - packaging/: shared .desktop entry and a generated 256px icon (gradient rounded square + waveform, matching the in-app logo). - packaging/aur/PKGBUILD: ready-to-publish template (framework- dependent build, pipewire/wireplumber/dotnet-runtime deps) for the planned AUR package; needs a LICENSE file and a tagged release before it can go up. - README: install section now covers AppImage and the AUR plan. Verified locally: the published AppDir passes --smoke and --smoke-ui; the appimagetool step runs on CI (sandbox egress blocks the download here). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jac4PWhnEzh7j5f5NaafJ1
SimplyJustJessie
pushed a commit
that referenced
this pull request
Aug 24, 2026
…tea releases' (#2) from claude/gitea-in-app-updater into main Reviewed-on: https://git.bussy.cloud/jessie/AutoRoute/pulls/2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to #1: grabbing a Source gave zero visual feedback — Avalonia's DragDrop renders no native drag image, so nothing appeared to move until you hovered a column.
What it looks like now
Mid-drag: the grabbed palette entry (Zen, left) dims and sinks, a ghost card floats under the pointer, and the drop column glows:
What changed
OverlayLayerand is repositioned fromDragOverevents, listened on the TopLevel withhandledEventsToosince columns mark their own DragOver handled.DragDrop.AllowDrop, so DragOver keeps firing between columns and the ghost never freezes; drops that land outside a column are refused there with a no-drop cursor (instead of the misleading default copy cursor).DragSourceBehaviorgains aDragLabelattached property (bound to the Source title in the palette) to feed the ghost; ghost teardown sits in afinally, so a cancelled or failed drop can never strand it on screen.--screenshottool now stages the full mid-drag scene for the shot above.Verification
dotnet buildclean, all 65 unit tests pass--smokeand--smoke-uiboth PASS🤖 Generated with Claude Code
https://claude.ai/code/session_01Jac4PWhnEzh7j5f5NaafJ1
Generated by Claude Code