<Swing Dev> Focus on image icons are not visible in javaws cache with high contrast mode

Pavel Porvatov pavel.porvatov at oracle.com
Wed Nov 23 18:23:52 UTC 2011


Hi Sean,
> 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

Regards, Pavel

>
> 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
>     situation.
>
>     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
>>>                         wrote:
>>>
>>>                             Hi Pavel,
>>>
>>>
>>>                                 I reported a bug there yesterday,
>>>                             http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7089914
>>>                                 So far, I'm not sure if Windows use
>>>                             ControlTextColor, I'll check
>>>                             it.
>>>
>>>                         For ease of review, I've uploaded Sean's
>>>                         change as a webrev [1].
>>>
>>>                         With the change, I see the following
>>>                         focus-related color settings in the
>>>                         WindowsLookAndFeel:
>>>
>>>                         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
>>>                         ToggleButton.
>>>
>>>                     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
>>>             method.
>>>
>>>                              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
>>>                     color...
>>>
>>>                 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...
URL: <http://mail.openjdk.java.net/pipermail/swing-dev/attachments/20111123/f2508ce7/attachment.html>


More information about the swing-dev mailing list