On Mon, 12 May 2025 16:33:59 GMT, Harshitha Onkar <hon...@openjdk.org> wrote:
>> Yeah, I think right now `\t` `\r` `\n` handling is done separately for each >> platform, and I think also separately for screen display vs. printing. >> >> As an example, this fix addresses the screen display side of things for >> macOS, but printing on macOS needs to be fixed separately (as can be seen >> when you run `test/jdk/java/awt/print/PrinterJob/PrintTextTest.java`). I had >> a quick look at the corresponding macOS printing issue a few months ago and >> the fix wasn't obvious, especially given how that part of the code is >> organized (not really 1-to-1 with the other platforms). >> >> So I think `\t` `\r` `\n` handling is repeated quite a bit, and if we wanted >> to handle `0x2028` and `0x2029` exactly like we do `\t` `\r` `\n` then we'd >> need to change multiple places right now. >> >>> should we consider moving isIgnorableWhitespace() to common class - >>> CharToGlyphMapper instead of macOS specific src >> >> That sounds like it could be a good idea, but I don't have a sense of how >> likely it is to cause breakage elsewhere -- it'd be a matter of "do it and >> check for test regressions". Maybe you have a better gut feel for the >> likelihood of unintended side-effects? >> >> Note these two characters (`0x2028` and `0x2029`) are not default-ignorable, >> though. It sounds like we just don't want to render their glyphs, if they >> have any (similar to `\t` `\r` `\n`, which are also not default-ignorable). >> >> Over on PR #24412 Nikita has suggested an interesting change to >> `CharToGlyphMapper` and subclasses which might make this change easier, but >> I'd like some feedback from a reviewer or two before moving forward. The PR >> is complete from my POV, but we need some design direction (good as is, or >> needs tweaks, or need to use a different approach entirely, etc). > > Created a new JBS to track the issue on windows and linux - > [JDK-8356803](https://bugs.openjdk.org/browse/JDK-8356803) - Test > TextLayout/TestControls fails on windows & linux: line and paragraph > separator show a non-zero advance > There seems to be similar issue on Windows and Linux where the hexcode - > 0x2028 (line separator) and 0x2029 (paragraph separator) are shown with a > non-zero advance - `/java/awt/font/TextLayout/TestControls.java` Are these characters new? I can't remember there were any characters with non-zero width on Linux and Windows. I ran this test (or its previous version) on each HarfBuzz update. No, they were these characters are part of the existing test. I cannot reproduce this problem with 21.0.6. Nor is it reproducible with 21.0.7, the latest GA version of Java 21. Yet I the same picture as you attached on Windows on a recent build of mainline. If that's the case, it seems to be regression rather than an existing issue. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/23665#discussion_r2085275529