graphics: a placement without p= replaces the image's previous one instead of adding another #78
Labels
No labels
Area/ci
Area/cli
Area/client
Area/client-core
Area/daemon
Area/deps
Area/docs
Area/grid
Area/manual
Area/nix
Area/protocol
Area/pty
Area/render
Area/shaping
Area/skills
Area/transport
Area/vt
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Performance
Kind/Security
Kind/Testing
perf-regression-accepted
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Blocked
Status
Need More Info
Status
Upstream
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
felis-terminal/felis#78
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Placements::upsert(crates/felis-grid/src/images.rs) keys placements on(image_id, Option<placement_id>), so everya=p(ora=T) withoutp=shares one slot per image. Placing the same image twice without a placement id moves the first placement instead of adding a second one. The client shadow (crates/felis-client-core/src/image_shadow.rs) mirrors the same key.kitty:
handle_put_command(kitty/graphics.c) reuses an existing ref only wheng->placement_idis non-zero (and the image has a client id). The spec: "Not specifying a placement id or using p=0 for multiple put commands with the same non-zero image id results in multiple placements of the image."Repro: transmit image 1, then
\e_Ga=p,i=1,c=4,r=2\e\\at one cursor position and the same command at another. kitty shows two copies; felis shows one, at the second position.Decide: how an id-less placement is addressed afterwards (deletes by position still reach it;
d=iwithoutp=removes all of the image's placements). The wirePlacement/PlacementRemovedevents need a daemon-assigned key for id-less placements so the client can tell them apart.