graphics: a partial x/y/w/h source rectangle is ignored #43
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#43
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?
felis applies a placement's source rectangle (
x,y,w,h) only when all four keys are given (source_rectincrates/felis-daemon/src/graphics.rs). Otherwise the whole image is drawn. A producer that sends, say, onlyx=40to skip the left 40 px of a 100 px wide image gets the full image.kitty:
handle_put_command(kitty/graphics.c) defaults each key on its own:x/ydefault to 0, and an absent or zerow/hmeans the image size. The resulting width and height are then clipped to what remains of the image pastx/y. In the example above kitty draws the right 60 px.Repro: transmit a 100×50 image and place it with
a=p,i=1,x=40. kitty shows the right 60 px; felis shows all 100 px.Decide: whether to follow kitty's per-key defaults. It changes the
SourceRectthe daemon stores and sends, and with it the natural extent and the cursor move, which already resolve from the clipped rectangle (felis_grid::images::clip_source).