<Swing Dev> Focus on image icons are not visible in javaws cache with high contrast mode
pavel.porvatov at oracle.com
Wed Nov 23 10:23:52 PST 2011
> Hi Pavel,
> I rewrite a testcase, which is attached as TestButton.java . It has
> a toolbar and two buttons,
> one in toolbar and the other in contentpane. The one in toolbar use an
> image which is
> attached as testicon.png . I don't know how to write an automatic
> testcase for this one
> because it changes windows settings.
Sometimes it's really hard to write automatic test. In your case
SwingSet2 demo and an appropriate instruction for testers is enough...
> Just run TestButton and change windows to high contrast mode and you
> can find the focus
> is not painted.
> I attached the patch in webrev.zip. It just checks if button
> background is black when
> windows properties changed. Please have a look.
It seems your fix adds the following regression:
somebody can install own "Button.focus" value, but your code puts own
value over the users one
> On Sat, Oct 29, 2011 at 9:14 PM, Pavel Porvatov
> <pavel.porvatov at oracle.com <mailto:pavel.porvatov at oracle.com>> wrote:
> Hi Sean,
>> It seems the black color for focus is set intentionally. If we
>> set it to "ControlTextColor ",
>> the focus color may become red in above testcase, that's not what
>> we want.
>> And I changed the color for all items listed with "3D object",
>> the focus remains black;
>> maybe windows just uses "black" for focus color in normal mode,
>> and another color for
>> high contrast mode.
>> However, the original patch posted is not right in this
>> scenario. I'll modify it. How about
>> just uses white for high contrast mode ? As it simply uses black
>> for normal mode.
> I'm not sure you can determine if high contrast mode is set...
> Every heuristic function for selection color can fail in some
> If somebody can take a look at source of
> ControlPaint::DrawFocusRectangle(Graphics, Rectangle) method (see
> http://msdn.microsoft.com/en-us/library/k2czzc46.aspx) and find
> out which colors uses .NET....
> Regards, Pavel
>> On Wed, Oct 26, 2011 at 11:12 PM, Pavel Porvatov
>> <pavel.porvatov at oracle.com <mailto:pavel.porvatov at oracle.com>> wrote:
>> Hi Sean,
>>> Hi Pavel,
>>> From your image, I agree the focus color is not always
>>> the same with ControlTextColor,
>>> but I cannot recreate it. When I changed color of "3D
>>> objects" to red, I got another image.
>>> Please have a look.
>> It seems you changed Color1, but not Color (which a little
>> bit lower then Color1)....
>>> I think your suggestion is reasonable, we'd better use
>>> the focus color from windows, but
>>> it maybe a problem to keep 100% the same, I still not found
>>> if there is a document for the
>>> focus color.
>> Yes, the MS documentation about focus color is the best way
>> to fix the bug. Can anybody point to such document?
>> Regards, Pavel
>>> On Fri, Sep 16, 2011 at 7:06 PM, Pavel Porvatov
>>> <pavel.porvatov at oracle.com
>>> <mailto:pavel.porvatov at oracle.com>> wrote:
>>> Hi Neil,
>>> On Thu, 2011-09-15 at 17:04 +0400, Pavel Porvatov wrote:
>>> Hi Neil,
>>> On Wed, 2011-09-14 at 14:14 +0800, Sean Chou
>>> Hi Pavel,
>>> I reported a bug there yesterday,
>>> So far, I'm not sure if Windows use
>>> ControlTextColor, I'll check
>>> For ease of review, I've uploaded Sean's
>>> change as a webrev .
>>> With the change, I see the following
>>> focus-related color settings in the
>>> Button.focus: ControlTextColor
>>> Checkbox.focus: ControlTextColor
>>> RadioButton.focus: ControlTextColor
>>> Slider.focus: ControlDarkShadowColor
>>> TabbedPane.focus: ControlTextColor
>>> ToggleButton.focus: ControlTextColor
>>> So the change of setting for Button,
>>> Checkbox and RadioButton conforms
>>> to what is already used for TabbedPane and
>>> But doesn't conform to Slider.focus...
>>> Are you recommending that Slider.focus should be
>>> changed to
>>> ControlTextColor too ?
>>> No, I meant that we cannot fix some bugs by copy-paste
>>> From it's name, it's not entirely
>>> obvious to me that 'ControlTextColor'
>>> is really the ideal setting to use here, but
>>> it's also clear that it's a
>>> far better setting to use than the current
>>> hard-coded 'black'.
>>> Yes, of course. The last question is which color
>>> is correct. We can't
>>> change one incorrect color to another incorrect
>>> I guess I hope that some knowledgeable person might
>>> be able to suggest /
>>> corroborate / refute the choice of setting here.
>>> It seems worse to consider sticking with a
>>> hard-coded, un-configurable
>>> value that has been demonstrated to cause problems,
>>> than to use a
>>> setting whose value can at least be configured, in
>>> practice fixes the
>>> problem's symptoms, and is already used in most
>>> other similar contexts
>>> within the same look& feel.
>>> Suggestions for how to improve things further are
>>> always welcome.
>>> Your points sounds good. But as I said: we can't change
>>> one incorrect color to another incorrect color (doesn't
>>> matter configurable it or not). I attached the
>>> screenshot that shows that ControlTextColor is not
>>> always equal to color of selection frame (to reproduce
>>> this image press the Advanced button and change color of
>>> "3D objects" to red).
>>> Regards, Pavel
>>> Best Regards,
>>> Sean Chou
>> Best Regards,
>> Sean Chou
> Best Regards,
> Sean Chou
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swing-dev