GraphiteEditor / GraphiteEditor/Graphite

Canvas doesn't rerender on moving left by text field

Open
#4,393 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
27.2k
Forks
1.3k
Avg merge
20h 5m
Merged PRs (30d)
57

Description

## Description

When inserting a text field, and on updating it's content, the text field occasionally moves left if its length is more and doesn't fit the currently displayed canvas, it is done so as to accommodate the cursor to see what is currently being written. In doing so, it doesn't re render the underlying canvas on the right, rather shows the grey background. Reported first on [discord](https://discordapp.com/channels/731730685944922173/881073965047636018/1467105234500194314).

## Reproduce the issue

1. Open a new document
2. Select "Text Tool (T)".
3. Start writing something near the left side in a zoomed artboard and you should see the issue.

## Possible Culprits & Solution

When moving the canvas to fit the text, the frontend doesn't call a Send Layout/Redraw request which is generally sent when moving the canvas with scrollbars or mouse (observed via the debug messages). So, possible solution would be to trigger a redraw/Layout change request when length exceeds the current length and text begins to move to the left.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with the Text Tool (T) flow and the canvas behavior when a text field grows beyond the visible artboard and shifts left. Use the debug messages to compare this automatic movement with scrollbar or mouse movement, especially whether a Send Layout/Redraw request is emitted. Done means the underlying canvas is redrawn instead of showing the grey background.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics, frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.