Skip to content

fix(sidebar): share compact rows and drag feedback - #1713

Merged
l0gicgate merged 2 commits into
mainfrom
fix/1707-compact-sidebar-drag-indicators
Oct 17, 2026
Merged

l0gicgate merged 2 commits into
mainfrom
fix/1707-compact-sidebar-drag-indicators

Conversation

@JoeJoeflyn

@JoeJoeflyn JoeJoeflyn commented Oct 16, 2026 •

Copy link
Copy Markdown
Collaborator

Description

Compact pinned sidebar rows by using the insertion gaps as the spacing instead of adding spacing around each gap. Show clear before/after reorder lines for both built-in places and pins, without letting the general file-drop outline override them. Folder-body transfers and spring navigation remain unchanged.

Visual evidence

screenrecording-2026-10-16_22-48-30.mp4

How to test

  1. Pin several folders. Compare their spacing with Home/Trash, in both the full sidebar and icon rail.
  2. Drag Home/Trash or a pinned row above and below another row. Drag a browser folder into the first, middle, and last pin gaps.
  3. Drop a file onto a pinned folder body, then restart Strata to check the saved pin/places order.

Expected result: Compact rows, clear accent insertion lines at the intended position, persistent reordering, and unchanged file transfers onto folder bodies. Built-in places and pins cannot reorder into each other's section.

Related issue

Closes #1707

Use insertion gaps as the pinned-row spacing and show directional feedback for compatible built-in and pinned reorders. Keep the active indicator above the general file-drop outline while retaining folder-body transfers and spring navigation.

Refs #1707
@JoeJoeflyn
JoeJoeflyn marked this pull request as ready for review October 16, 2026 15:46
Reuse row gaps, reorder targets and hover ownership across Places, Pinned, Devices and picker sidebars. Preserve local-only picker filtering and prevent stale drop/focus indicators.\n\nRefs #1707
@JoeJoeflyn JoeJoeflyn changed the title fix(sidebar): compact pins and show consistent reorder lines fix(sidebar): share compact rows and drag feedback Oct 16, 2026
@l0gicgate

Copy link
Copy Markdown
Contributor

Review

No merge blockers found. No commits pushed: the head (cf3a5ffe) already contains the latest main (4ec310dc).

What I checked

  • SidebarDropFeedback ownership: a late pin validation, or a leave from a site the pointer already left, can't restore or clear the active indicator. Entering a new site resets the old one and cancels its spring-load. Sidebar rebuilds and the reorder drag_end both reset feedback.
  • Gap layout: append_sidebar_row and insert_reorder_gap never stack two gaps. Each place row's before/after gap reorders with a fixed after. Pinned rows reuse the existing pin gaps.
  • sidebar_reorder_matches keeps built-in places and pins in their own sections. Same-row drops onto a row's own gap are no-ops.
  • Picker (local_only): FolderDragCache::new(true) rejects non-native pins before any probe, and remote pins stay hidden.
  • Comments: the PR adds no code comments. The two E2E time.sleep comments explain a non-obvious wait, so they stay.
  • Tests: the new unit and E2E tests cover distinct routes (row vs. gap, before vs. after, the section boundary, resize mid-drag, spring-load departure, persistence across restart). I found no tautological or layout assertions.

Scope note (not blocking): besides gap spacing, the picker sidebar now has the full place/pin behavior: reordering, drag-to-pin, and the Unpin/Customize…/Properties context menu. Unpinning Home or an XDG place there hides it everywhere, because it writes the shared preference. docs/portal-file-chooser.md documents this as intended.

Local verification (native, private headless display/bus)

  • cargo fmt --all --check: pass
  • cargo clippy --all-targets --all-features -- -D warnings: pass
  • ./scripts/test-headless.py (full cargo test --all-targets --all-features): pass, lib 2805 passed / 0 failed / 9 ignored, all other targets green
  • I didn't rerun E2E locally because I changed nothing. CI's E2E shards are green on this head. I didn't do a manual UI check; the PR's video covers the visuals.

@l0gicgate
l0gicgate merged commit dccef53 into main Oct 17, 2026
14 checks passed
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.

fix(sidebar): compact pin spacing and show consistent reorder indicators

2 participants