Use font device when setting the font instead of gc device #2304
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.
When a font is initialized with a Printer as its device, it should only be used with a GC that was also created from that same Printer. Using such a font with a GC tied to a different device, like a Display, leads to a device mismatch. Since the printer may have a much higher DPI (e.g., 600 DPI) compared to the display (typically 96 DPI), this mismatch causes the text to render extremely large.
To explain I am adding a snippet here:
Expected behavior
The correct behavior of this snippet should be Oversized text in a shell due to device mismatch. But that doesn't happen without proposed change. WHY? because while setting the font we used the display of the GC instead of Font which is incorrect.