Conversation
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
This was referenced Sep 3, 2026
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 3, 2026 14:16
e555c3d to
4ab20f7
Compare
staging-devin-ai-integration
Bot
changed the base branch from
devin/1788383056-vertical-align
to
devin/1788393297-font-cache
September 3, 2026 14:16
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
2 times, most recently
from
September 3, 2026 15:41
8f09a12 to
a24bee4
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 3, 2026 15:47
a24bee4 to
df9b848
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 3, 2026 17:05
df9b848 to
3a57739
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
2 times, most recently
from
September 3, 2026 17:38
7c30135 to
bf0e37a
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 3, 2026 17:54
bf0e37a to
3d56c99
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 7, 2026 18:29
3d56c99 to
f5bb8ff
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 8, 2026 14:36
f5bb8ff to
f43d251
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 8, 2026 14:42
f43d251 to
75702f5
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 8, 2026 15:59
75702f5 to
d58806c
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
2 times, most recently
from
September 14, 2026 17:22
7580be8 to
873cb68
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 16, 2026 10:43
873cb68 to
79e5b83
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 16, 2026 10:55
79e5b83 to
0a9a773
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 16, 2026 11:36
0a9a773 to
63d5506
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 16, 2026 11:43
63d5506 to
e86cb0b
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 16, 2026 11:56
e86cb0b to
7d79f95
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
2 times, most recently
from
September 16, 2026 12:25
486c6db to
9a9be7d
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 16, 2026 12:27
9a9be7d to
9447e55
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 16, 2026 12:34
9447e55 to
5bed76c
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 16, 2026 12:43
5bed76c to
9dc8721
Compare
staging-devin-ai-integration
Bot
force-pushed
the
devin/1788438223-vertical-align-fixes-762
branch
from
September 16, 2026 19:14
9dc8721 to
7518658
Compare
…yle_baseline A hanging space that overflowed the line always started a new line, so text ending in spaces (or NBSP) got an extra empty line. Consecutive spaces now stay together and spaces that end the layout no longer open an empty line. Style::parent and Line::style_baseline are made public so consumers can find the baseline of a decorating ancestor box (text-decoration must be drawn at the decorating box's baseline, not at the shifted baseline of a vertical-aligned descendant).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
LLM Contributions: Devin (Cognition) authored the code and this description under human direction.
Replaces #20. Stacked on #18 → #19, which are now themselves based on linebender#762 (
1218f0d), so this PR contains only the fixes below.Trailing spaces (
line_break.rs)linebender#762 decides which trailing whitespace hangs (in
finish_line), but the breaker still unconditionallystart_new_lines after appending an overflowing hanging space. Consequences:"AAA "at the end of the layout produces a second, empty line (layout.len() == 2, still reproducible on linebender#762 and upstreammain), and"XXXX XX"under pre-wrap breaks after the first hanging space instead of hanging both.Now, after appending an overflowing hanging space, the breaker
continues while the next character in the layout is another hangable space (U+0020 or tab — matching linebender#762'sis_spaceset), or when there is nothing after it; otherwise it starts the new line as before. The lookahead uses the global character list so it also works when the spaces are split across runs (a style change inside the trailing spaces), and an inline box following the space still breaks. NBSP is not chained (it doesn't hang under linebender#762's rules; thenbspsnapshot is updated for that).Regression test:
trailing_whitespace_does_not_add_line(single space, multiple spaces, NBSP, hard wrap, soft wrap, and two cases with a font-size change on the middle of three trailing spaces at a width where the first space already overflows).Public
Style::parent()andLine::style_baseline()Renderers need to draw text decorations at the baseline of the decorating inline box, not at the (possibly shifted) baseline of each glyph run.
Line::style_baseline(style_index)waspub(crate); it is nowpub, plus aStyle::parent()accessor so the renderer can walk from a run's style to the style that owns the decoration. Test:vertical_align_style_baseline.Blitz WPT (8 dirs, 4188 run) with this pin: 2533 pass vs 2523 for #20 — the +10 is linebender#762's own gains (justification / trailing-space tests) minus the two
line-break-anywhere-overrides-uax-behavior-004/006accidental passes linebender#762's description already notes.Changelog
Link to Devin session: https://dioxus.staging.devinenterprise.com/sessions/da7669e341814cc7976e4ebf32b7eacb
Open in Devin Desktop: https://dioxus.staging.devinenterprise.com/desktop/session/da7669e341814cc7976e4ebf32b7eacb?variant=devin-insiders
Requested by: @nicoburns