Repository navigation
feat(explorer): a picked-up item is its row, icon and name (#327) - #329
Merged
Merged
Conversation
The owner, 2026-10-07: "when i pick up an item i wanna pick up the row, essentially not just a label, so i want the icon and so on". What hangs off the pointer is now the pressed row as it looks selected: its own icon (never the tree's chevron), its name, its height, side padding, gap and font, the selection's tint and edge. No type, size or date. Several items show that one row with a count on its corner instead of "N items". Move or Copy is a small line under the row. lib/dragRow.ts builds it from the source row's DOM and computed style, so the Explorer list, the tree and places each show their own icon. Placement is #310's, unchanged. The dragLabel e2e checks the icon, name, count, height, font, look and the absent columns, with close-up shots in Aurora and Paper. Version 0.97.0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FHHaWKR4M5QtW7Wecyuk4t
…nd (#327) Review of #327: - The carried row wore --p-sel-tint-seen, the tint over the window ground, but list rows sit on the list's ground and tree rows on the sidebar's, so in Paper and in every tree drag it did not match the marked row. It is now the tint composited on the source row's first opaque ground (--p-sel-tint-seen only where none is, under acrylic). - Move or Copy sits outside the placed box (absolute, under the row or over it at the window's bottom), so the row never jumps as a target toggles. The hook writes it only when it changes and measures the row once, not every frame. - An unsaved tree file's "*" is not carried; with no icon the row is named by its own path before the first carried one. - The dragLabel e2e compares the carried row's pixels with the marked row's (list and tree, Aurora and Paper), checks that an unmarked row pressed among marked ones carries itself alone, and that the placed box is the row alone. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FHHaWKR4M5QtW7Wecyuk4t
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FHHaWKR4M5QtW7Wecyuk4t
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.
The owner, 2026-10-07: "when i pick up an item i wanna pick up the row, essentially not just a label, so i want the icon and so on".
Decisions (with the owner)
What changed
lib/dragRow.tsbuilds the carried row from the source row's own DOM and computed style. It takes the icon beside the name (never the tree's chevron), the row's height, side padding, gap, font and the--p-sel-lineedge. One builder serves the tree, the Explorer list, archive rows and Quick Access pins, and each shows its own icon. The cloned icon's ids are renamed, so its mask does not depend on the source row.--p-sel-tint-seen. The result is always opaque.--p-sel-bg/--p-on-accent. A single item shows no badge. Pressing an unmarked row while other rows are marked carries that row alone.*, since the file carried is the one on disk. When there is no icon (fallback), the row is named by its own path, then by the first carried path.lib/internalFileDrag.ts: it is still an in-page element (the Ctrl+Tab rule). The row is measured once at the start, and the Move or Copy text is written only when it changes, so there is no DOM write or forced layout every frame.For the owner to decide: the Move / Copy line
The old label read "Move alpha.txt" while a target would take the drop. The row keeps that information as a small line, but outside the placed box (absolute: under the row, or over it at the window's bottom), so the row never jumps when a target starts or stops accepting. You asked for icon and name only, so this line is a carry-over and not part of that request. Say if it should go.
Tests
dragRow.test.tscovers the icon finder (list, tree chevron, place, img, none), the count text, the row style, colour parsing, the composite on the first opaque ground (including acrylic and unknown forms), and the unsaved star.dragLabel(run locally, all pass): placement at 100%, 150% and 225%; tree file and folder, Explorer list file and folder, places. For each it checks the icon, name, count, height, font, the opaque fill with the selection edge, and that the type, size and date are absent. It checks that the placed box is the row alone and that the row is removed when the drag ends. In Aurora and Paper it compares the carried row's PIXELS with the marked row's, for the list (one item and three) and for the tree. It also covers an unmarked row pressed among marked rows (its own name, no count).Screenshots (
.e2e/shots)drag-row-dark-one.png,drag-row-light-one.png: one Explorer row carried: the TXT icon and "alpha.txt" on the selected tint, which matches the marked row behind it.drag-row-dark-many.png,drag-row-light-many.png: beta.txt carried with a blue "3" on its corner.drag-row-dark-tree.png,drag-row-light-tree.png: a tree file carried, on the sidebar's selected tint.Closes #327
🤖 Generated with Claude Code
https://claude.ai/code/session_01FHHaWKR4M5QtW7Wecyuk4t