fix(editor): incorrect text position in turbo renderer (#10728)

Fixed incorrect text positioning regression across multiple lines (#10624)

Before:

![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/lEGcysB4lFTEbCwZ8jMv/e1d7ba50-d331-41e3-8d31-dee2324e7439.png)

After:

![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/lEGcysB4lFTEbCwZ8jMv/215ec925-65bf-4014-ba6c-db431cb56261.png)
This commit is contained in:
doodlewind
2025-03-10 06:27:38 +00:00
parent 36cf973372
commit d0bc1a0271
@@ -53,13 +53,13 @@ function getParagraphs(host: EditorHost) {
const sentences = segmentSentences(paragraphNode.textContent || ''); const sentences = segmentSentences(paragraphNode.textContent || '');
paragraph.sentences = sentences.map(sentence => { paragraph.sentences = sentences.map(sentence => {
const sentenceRects = getSentenceRects(paragraphNode, sentence); const sentenceRects = getSentenceRects(paragraphNode, sentence);
const rects = sentenceRects.map(({ rect }) => { const rects = sentenceRects.map(({ text, rect }) => {
const [modelX, modelY] = clientToModelCoord(viewportRecord, [ const [modelX, modelY] = clientToModelCoord(viewportRecord, [
rect.x, rect.x,
rect.y, rect.y,
]); ]);
return { return {
text: sentence, text,
...rect, ...rect,
rect: { rect: {
x: modelX, x: modelX,
@@ -105,10 +105,7 @@ export function getViewportLayout(
}); });
}); });
const layoutModelCoord = clientToModelCoord(viewport, [ const layoutModelCoord = [layoutMinX, layoutMinY];
layoutMinX,
layoutMinY,
]);
const w = (layoutMaxX - layoutMinX) / zoom / viewport.viewScale; const w = (layoutMaxX - layoutMinX) / zoom / viewport.viewScale;
const h = (layoutMaxY - layoutMinY) / zoom / viewport.viewScale; const h = (layoutMaxY - layoutMinY) / zoom / viewport.viewScale;
const layout: ViewportLayout = { const layout: ViewportLayout = {