# editor: Paint block cursor text upon arrival during animation \(\#64521\) · gitcafe/zed

[View on GitCafe](https://git.cafe/gitcafe/zed/commit/b54cc1d0acc8fe3f7581721ee1195516e7581f9d)

Repository: [gitcafe/zed](https://git.cafe/gitcafe/zed)

Visibility: public

Requested revision: b54cc1d0acc8fe3f7581721ee1195516e7581f9d

Requested commit: b54cc1d0acc8fe3f7581721ee1195516e7581f9d

Commit: b54cc1d0acc8fe3f7581721ee1195516e7581f9d

Tree: f95bc47dd3c93e9663bfca0b5a02db483689897d

Author: linyisu

Committer: GitHub

## Message

```
editor: Paint block cursor text upon arrival during animation (#64521)

Follow-up to #63195.

# Objective
When `cursor_animation` is enabled, moving a block cursor (e.g. in Vim
mode) leaves the character underneath hidden until the spring animation
fully finishes, after which the letter pops in.
This happens because `CursorLayout::paint` returned early while
animating, skipping `block_text`.

## Solution
Paint `block_text` upon the animated cursor's arrival at the target
cell, rather than waiting for the entire spring settling phase to
complete:
- Check if any animated corner has reached the target bounds
(`bounds.dilate(...)`).
- If the cursor is still in mid-air, return early so we don't draw the
destination letter prematurely.
- Once it touches the target cell, fall through and paint `block_text`
over the cursor polygon.

## Self-Review Checklist:
- [x] I've reviewed my own diff for quality, security, and reliability
- [ ] Unsafe blocks (if any) have justifying comments
- [x] The content adheres to Zed's UI standards
([UX/UI](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist)
and
[icon](https://github.com/zed-industries/zed/blob/main/crates/icons/README.md)
guidelines)
- [ ] Tests cover the new/changed behavior
- [x] Performance impact has been considered and is acceptable

## Showcase
Left: before, Right: after


https://github.com/user-attachments/assets/7057f40a-64a7-4035-b8e2-7c0b7dc40069

---

Release Notes:
- Fixed an issue where the block cursor hid the character underneath
until cursor animation completed.

---------

Co-authored-by: Christopher Biscardi <chris@christopherbiscardi.com>
```

## Parents

- [f25434f3c5a895d52f402ab05c079aa6703825c1](https://git.cafe/gitcafe/zed/commit/f25434f3c5a895d52f402ab05c079aa6703825c1?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zed/tree/b54cc1d0acc8fe3f7581721ee1195516e7581f9d?format=markdown)
