On Wed, 28 Jun 2023 06:00:49 GMT, Tejesh R <[email protected]> wrote:

>>> > This change will have broad impact everywhere the Border is used. And it 
>>> > seems to me to be a workaround for the problem that Metal isn't correctly 
>>> > calculating the length of the text at the scaled resolution.
>>> 
>>> It is possible that the width of the sting isn't calculated correctly, 
>>> which could explain “cut off” label. At the same time, the text flushed to 
>>> the very edge doesn't look either. When there's a margin, text looks better 
>>> and is easier to read. Perhaps, we should address both issues.
>> 
>> So long as such a margin doesn't just become another workaround fix, so
>> 
>> Step 1 - measure it correctly
>> Step 2 - add a pixel of clear margin space for added aesthetics.
>
> @prrace @aivanov-jdk I don't see much impact w.r.t to Label position/width 
> for different scaling factors. 
> The width is computed in 
> [stringWidth(String)](https://github.com/openjdk/jdk/blob/48e61c1df53c11ed49603abd70a3dd62a25f7be5/src/java.desktop/share/classes/sun/font/FontDesignMetrics.java#L457)
>  which is same for all scaling factors (though their are slight differences 
> between scaling factor, its corrected due to 0.5 addition at the end). The 
> position is computed in 
> [layoutCompoundLabelImpl()](https://github.com/openjdk/jdk/blame/526dba1a2942e444bf11d03d8eaf014b5ef20ccf/src/java.desktop/share/classes/javax/swing/SwingUtilities.java#L1073)
>  which seems to be correct, since the calculation for XPos which is `dx = 
> (viewR.x + viewR.width) - (labelR_x + labelR_width);` seems straight forward. 
> Is there anything else which I should check or can we move ahead with current 
> fix i.e., setting margin to 2pixels for RIGHT Aligned header text for Metal 
> L&F?
> Parallelly I will raise a bug and PR for header border alignment.

> @TejeshR13 I agree it looks correct, I can't spot any differences. Does 
> `JLabel` always position the text correctly? If you make `JLabel` 
> right-aligned, do you see any pixels which aren't painted as expected?

I didn't any differences in pixels, nor any computational issues specific to 
right-alignment.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/14464#issuecomment-1621015245

Reply via email to