Keep a natural-size Kitty image at its pixel size when the cell size changes #41
No reviewers
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!41
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/natural-extent-rescale"
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?
Closes #19.
A Kitty graphics image placed without
c=/r=got its cell extent once, at the cell size of the moment, and felis kept only the result. After a font zoom, a config font change or a scale-factor change, the stored box no longer matched the image, so the renderer scaled the image into it: squashed and aliased when zooming out, stretched when zooming in. kitty keeps the request and recomputes the extent on every cell-size change (grman_rescale).c=/r=request. A cell-size change re-resolves every auto axis on both screens (the alternate screen's stashed primary placements included) and re-states the placements that changed. The extent stays daemon state, because erase, delete-by-cell and the cursor move read it.x/y/w/hrectangle, so such an image never drew at native size. Both now share one clip.Unicode-placeholder (
U=1) extents needed no change: they resolve at draw time with the client's cell size, as kitty'sgrman_put_cell_imagedoes.Before / after: a 420×130 px image placed without
c=/r=, shown atsize_px14, then 12, then 17 (left to right). Top row is before, bottom row is after. Before, the image follows its old 60×8-cell box. After, it stays at 420×130 px. At 12 px the following text line lands under the image, as it does in kitty: the rows shrink while the image keeps its pixel size.Out of scope, two further differences from kitty's
update_dest_rect:c=/r=given, kitty derives the other from the aspect ratio. felis resolves it to that axis's natural size. (#42)x/y/w/hon its own. felis ignores a partial set. (#43)