<Swing Dev> Questionable Rendering of Disabled Text
Michael D
me at md-5.net
Sat Nov 4 04:53:10 UTC 2017
Apologies, noticed I broke the patch between testing and submission.
Correct and re-tested version
--- a/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKGraphicsUtils.java
+++ b/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKGraphicsUtils.java
@@ -47,34 +47,17 @@ class GTKGraphicsUtils extends SynthGraphicsUtils {
return;
}
int componentState = context.getComponentState();
- if ((componentState & SynthConstants.DISABLED) ==
- SynthConstants.DISABLED){
- if (!GTKLookAndFeel.is3()) {
- Color orgColor = g.getColor();
- g.setColor(context.getStyle().getColor(context,
- GTKColorType.WHITE));
- x += 1;
- y += 1;
- super.paintText(context, g, text, x, y, mnemonicIndex);
- g.setColor(orgColor);
- x -= 1;
- y -= 1;
- }
- super.paintText(context, g, text, x, y, mnemonicIndex);
- }
- else {
- String themeName = GTKLookAndFeel.getGtkThemeName();
- if (themeName != null && themeName.startsWith("blueprint") &&
- shouldShadowText(context.getRegion(), componentState)) {
+ String themeName = GTKLookAndFeel.getGtkThemeName();
+ if (themeName != null && themeName.startsWith("blueprint") &&
+ shouldShadowText(context.getRegion(), componentState)) {
- g.setColor(Color.BLACK);
- super.paintText(context, g, text, x+1, y+1, mnemonicIndex);
- g.setColor(Color.WHITE);
- }
-
- super.paintText(context, g, text, x, y, mnemonicIndex);
+ g.setColor(Color.BLACK);
+ super.paintText(context, g, text, x+1, y+1, mnemonicIndex);
+ g.setColor(Color.WHITE);
}
+
+ super.paintText(context, g, text, x, y, mnemonicIndex);
}
/**
On 4 November 2017 at 07:13, Michael D <me at md-5.net> wrote:
> My bad,
>
> Patch just looks like this (bit messy because of indent change).
> Thanks
> Michael
>
>
>
>
> --- a/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKGraphicsUtils.java
> +++ b/src/java.desktop/share/classes/com/sun/java/swing/plaf/gtk/GTKGraphicsUtils.java
> @@ -46,35 +46,17 @@ class GTKGraphicsUtils extends SynthGraphicsUtils {
> // ignore this.
> return;
> }
> - int componentState = context.getComponentState();
> - if ((componentState & SynthConstants.DISABLED) ==
> - SynthConstants.DISABLED){
> - if (!GTKLookAndFeel.is3()) {
> - Color orgColor = g.getColor();
> - g.setColor(context.getStyle().getColor(context,
> - GTKColorType.WHITE));
> - x += 1;
> - y += 1;
> - super.paintText(context, g, text, x, y, mnemonicIndex);
>
> - g.setColor(orgColor);
> - x -= 1;
> - y -= 1;
> - }
> - super.paintText(context, g, text, x, y, mnemonicIndex);
> - }
> - else {
> - String themeName = GTKLookAndFeel.getGtkThemeName();
> - if (themeName != null && themeName.startsWith("blueprint") &&
> - shouldShadowText(context.getRegion(), componentState)) {
> + String themeName = GTKLookAndFeel.getGtkThemeName();
> + if (themeName != null && themeName.startsWith("blueprint") &&
> + shouldShadowText(context.getRegion(), componentState)) {
>
> - g.setColor(Color.BLACK);
> - super.paintText(context, g, text, x+1, y+1, mnemonicIndex);
> - g.setColor(Color.WHITE);
> - }
> -
> - super.paintText(context, g, text, x, y, mnemonicIndex);
> + g.setColor(Color.BLACK);
> + super.paintText(context, g, text, x+1, y+1, mnemonicIndex);
> + g.setColor(Color.WHITE);
> }
> +
> + super.paintText(context, g, text, x, y, mnemonicIndex);
> }
>
> /**
>
> On 4 November 2017 at 06:39, Philip Race <philip.race at oracle.com> wrote:
>> Yes these mailing lists strip attachements
>> So an in-line patch .. or send directly to one of us to host it for you on
>> cr.openjdk.java.net.
>>
>> -phil.
>>
>> On 11/3/17, 12:34 PM, Sergey Bylokhov wrote:
>>>
>>> Hi, Michael.
>>> It seems that the attached patch was removed from the email, can you
>>> please provide a link to it or inline in email.
>>> Thank you.
>>>
>>> On 03/11/2017 03:09, Michael D wrote:
>>>>
>>>> On 3 November 2017 at 21:07, Michael D <me at md-5.net> wrote:
>>>>>
>>>>> Hi All,
>>>>>
>>>>> Last couple of days I've been trying to root out this bug -
>>>>> https://bugs.launchpad.net/ubuntu/+source/openjdk-8/+bug/1729558 which
>>>>> has resulted in poor looking rendering on my machine.
>>>>> It turns out that the cause of this behavior is that Swing tries to do
>>>>> its own magic disabled item rendering by turning the text white and
>>>>> shifting it a pixel in each direction. I have no doubt there was
>>>>> probably a good reason for this, however the file has remained
>>>>> unchanged since its initial import in 2007! (Maybe someone from Oracle
>>>>> can find out more)
>>>>> Removing this code (patch attached) makes disabled menu items render
>>>>> correctly in both light and dark GTK themes. Its completely trivial,
>>>>> but I've nonetheless provided the patch for context. There is also
>>>>> some adjacent code that references a metacity theme called "blueprint"
>>>>> that also seems pre 2007 era, but I've left that in as I have no idea
>>>>> of its context.
>>>>>
>>>>> Appreciate if this change / bug could be reviewed & discussed. In the
>>>>> meantime I will also forward it downstream to Ubuntu as this is where
>>>>> I encountered it / affects my usage.
>>>>>
>>>>> Thanks
>>>>> Michael
>>>
>>>
>>>
>>
More information about the swing-dev
mailing list