graphics: images inside a partial scroll region do not scroll with the text #40
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#40
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?
When a program sets a scroll region narrower than the screen (DECSTBM, e.g. a fixed header and footer with the rows in between scrolling) and text scrolls inside it, Kitty graphics placements inside the region stay where they are. The text moves up under or over a stationary image.
Placements move only on full-screen scrolls: into scrollback on the primary screen, and off the top on the alternate screen. A scroll of a partial region queues no placement effect.
Repro:
printf '\033[2;10r\033[5;1H', place an image witha=T(e.g.c=8,r=3), then print enough lines to scroll the region. The image stays on rows 5–7 while the text scrolls past it.kitty:
graphics.cscroll_filter_margins_funcmoves every non-virtual placement that lies within the region by the scroll amount. If the move takes a placement partly past a margin, kitty clips its source rect; if it moves fully outside, kitty drops it.The cursor move after an image placement uses the same region scroll, so an image placed at the bottom margin of a partial region has the same limitation.
Decide: whether to follow kitty's per-region move and clip. Clipping needs a placement source-rect adjustment that the daemon does not do today.