[7u4] Request for approval for 7124530 - What is background color of AWT component? (And foreground, for that matter)

Artem Ananiev artem.ananiev at oracle.com
Wed Jan 25 07:00:26 PST 2012


On 1/23/2012 11:16 PM, Sergey Bylokhov wrote:
> Hello,
> Note: that the fix just replace one constant to another. And if there is
> a way to get this system background color in more appropriate way, we
> can do it later.

This is an important notice: the fix doesn't do any harm. Although it 
may not be perfect, it should be addressed separately.

I'm fine with it.

Thanks,

Artem

> If there is no other comments I request an approve for the fix again.
>
> 20.01.2012 17:21, Sergey Bylokhov wrote:
>> 18.01.2012 0:29, Mike Swingler wrote:
>>> On Jan 13, 2012, at 10:52 AM, Sergey Bylokhov wrote:
>>>
>>>> 13.01.2012 21:31, Mike Swingler пишет:
>>>>> On Jan 13, 2012, at 6:27 AM, Sergey Bylokhov wrote:
>>>>>
>>>>>> 13.01.2012 6:30, Mike Swingler wrote:
>>>>>>
>>>>>>> On Jan 12, 2012, at 4:24 AM, Sergey Bylokhov wrote:
>>>>>>>
>>>>>>>> Hello,
>>>>>>>> This is a request to push the following changes to jdk7u-osx.
>>>>>>>> The fix has been reviewed on macosx-port-dev mailing list by
>>>>>>>> Alexander Potochkin.
>>>>>>>>
>>>>>>>> Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7124530
>>>>>>>> Webrev can be found at:
>>>>>>>> http://cr.openjdk.java.net/~serb/7124530/webrev.00/
>>>>>>>> Technical review:
>>>>>>>> http://mail.openjdk.java.net/pipermail/macosx-port-dev/2012-January/002143.html
>>>>>>>>
>>>>>>> I don't understand this part:
>>>>>>>
>>>>>>> --- old/src/macosx/native/sun/awt/CSystemColors.m 2011-12-28
>>>>>>> 19:02:19.913935900 +0400
>>>>>>> +++ new/src/macosx/native/sun/awt/CSystemColors.m 2011-12-28
>>>>>>> 19:02:19.557915600 +0400
>>>>>>> @@ -81,7 +81,8 @@
>>>>>>> sColors[java_awt_SystemColor_INACTIVE_CAPTION] = [NSColor
>>>>>>> grayColor];
>>>>>>> sColors[java_awt_SystemColor_INACTIVE_CAPTION_TEXT] = [NSColor
>>>>>>> grayColor];
>>>>>>> sColors[java_awt_SystemColor_INACTIVE_CAPTION_BORDER] = [NSColor
>>>>>>> grayColor];
>>>>>>> - sColors[java_awt_SystemColor_WINDOW] = [NSColor grayColor];
>>>>>>> + const CGFloat color = (CGFloat)0xEE/(CGFloat)0xFF;
>>>>>>> + sColors[java_awt_SystemColor_WINDOW] = [NSColor
>>>>>>> colorWithCalibratedRed:color green:color blue:color alpha:1.0f];
>>>>>>> sColors[java_awt_SystemColor_WINDOW_BORDER] = [NSColor
>>>>>>> windowFrameColor];
>>>>>>> sColors[java_awt_SystemColor_WINDOW_TEXT] = [NSColor
>>>>>>> windowFrameTextColor];
>>>>>>> sColors[java_awt_SystemColor_MENU] = [NSColor
>>>>>>> controlBackgroundColor];
>>>>>>>
>>>>>>> Why aren't you just using [NSColor windowBackgroundColor]?
>>>>>> Only selectedControlColor and selectedTextBackgroundColor are
>>>>>> supported.
>>>>>> http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/DrawColor/Tasks/SystemColors.html#//apple_ref/doc/uid/20000790
>>>>>>
>>>>>> As I understand that`s why swing didn`t use this color. After the
>>>>>> fix awt and swing use one color (before the fix this color was
>>>>>> used by swing).
>>>>>> If this color is wrong, now it`s possible to change it in one place.
>>>>> I can assure you that the window background color reports the
>>>>> correct RGB value, even when the background color has changed
>>>>> between OS versions. You static constant will not.
>>>>>
>>>>> We use it today in Java SE 6.
>>>> jdk6 on my system reports white color which is wrong. Can you please
>>>> check it(testcase attached).
>>> The test works fine in Java SE 6 with JFrames and other components.
>>> The bug where you are getting white from a pure AWT Frame is a side
>>> effect of something we call the "magic background color", which is
>>> not applicable to Java 7.
>> On jdk 6 it works with swing components, because they use
>> com.apple.laf.AquaNativeResources$CColorPaintUIResource with
>> RGB[r=238,g=238,b=238] instead of SystemColor.WINDOW with
>> RGB[r=255,g=255,b=255]. I assume that SystemColor.WINDOW is not used
>> in jdk 6.
>>>
>>> Does +[NSColor windowBackgroundColor] not give you the correct RGB
>>> value?
>> Yes. It return white color[r=255,g=255,b=255].
>>>
>>> Regards,
>>> Mike Swingler
>>> Apple Inc.
>>>
>>
>>
>
>



More information about the jdk7u-dev mailing list