<Swing Dev> Questionable Rendering of Disabled Text
Phil Race
philip.race at oracle.com
Thu Nov 9 21:40:37 UTC 2017
No need this time but in future file it at http://bugreport.java.com/ ...
those go into the same JIRA instance as JBS and just get moved after
verification
-phil.
On 11/9/2017 1:35 PM, Michael D wrote:
> Hi Phil,
>
> Not an OpenJDk dev so unable to file bug reports or webrevs.
>
> Thanks for looking at the patch and filing a report.
>
> Michael
>
> On Fri, 10 Nov 2017 at 05:52, Phil Race <philip.race at oracle.com
> <mailto:philip.race at oracle.com>> wrote:
>
> Protocol is that there first be a bug report and then a "RFR" (request
> for review) is sent
> to the list referencing the bug + the fix
>
> I have filed https://bugs.openjdk.java.net/browse/JDK-8191041
>
> and verified that it works. So we can perhaps short-circuit that this
> time .. but not next time ..
>
> As to the blueprints path it looks safer to leave it since I don't
> know
> how to test it
> so I would be happy to commit the patch as is but I think this opinion
> needs to be
> reviewed by someone else on the list first ..
>
> -phil.
>
> On 11/03/2017 09:53 PM, Michael D wrote:
> > 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
> <mailto: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 <mailto: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 <http://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
> <mailto: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