Request for review: 7124530 What is background color of AWT component? (And foreground, for that matter)
Sergey Bylokhov
sergey.bylokhov at oracle.com
Tue Jan 10 09:07:50 PST 2012
Hi Anthony.
10.01.2012 20:51, Anthony Petrov wrote:
> Hi Sergey,
>
> src/macosx/classes/sun/lwawt/LWWindowPeer.java
>> 140 if (!target.isBackgroundSet()) {
>> 141 target.setBackground(SystemColor.window);
>> 142 } else {
>> 143 // first we check if user provided alpha for
>> background. This is
>> 144 // similar to what Apple's Java do.
>> 145 // Since JDK7 we should rely on setOpacity() only.
>> 146 // this.opacity = c.getAlpha();
>> 147 // System.out.println("Delegate assigns alpha (we
>> ignore setOpacity()):"
>> 148 // +this.opacity);
>> 149 }
This code has been moved from CPlatformWindow as is, so it can be reused
later by CPlatformEmbeddedFrame.
>
> A couple of questions regarding this piece of code:
>
> 1. Why do we need the else{} branch here? Are we going to use it? How?
> Should the comment explain this future use?
>
> 2. What do you mean by saying "we should rely on setOpacity() only"?
> The alpha value of the background color and the alpha value returned
> by getOpacity() are different kinds of opacity: the former affects the
> background surface of the window only, whilst the latter affects the
> entire window's surface including any content explicitly painted on
> top of the background.
>
> --
> best regards,
> Anthony
>
> On 1/10/2012 7:33 PM, Sergey Bylokhov wrote:
>> Hi Everyone,
>>
>> Does anybody have a comments?
>>
>> 29.12.2011 17:34, Sergey Bylokhov wrote:
>>> Hi Everyone,
>>> This is a fix for some glitches in the code for
>>> background/foreground/font properties.
>>> 1. SystemColor.window was changed to color which is used by default
>>> in swing l&f(Aqua). Changes in AquaImageFactory.java and
>>> CSystemColors.m. Now most of the awt components use this color as
>>> default.
>>> 2. set** methods were moved from LWWindowPeer to LWComponentPeer,
>>> because there is an issues when these methods has no effect, because
>>> repaint of the component does not happen.For example:
>>> - call Label.setbackground which set component background property
>>> - call Peer.setBackground
>>> - call Delegate.setBackgound
>>> - compare passed color with color from Label property, which was
>>> set in the first step: changes in
>>> LWWindowPeer,LWContainerPeer,LWComponentPeer.
>>> 3. List default color was changed to SystemColor.text: changes in
>>> LWListPeer.java.
>>> 4. LWWIndow target color initialization was moved from
>>> CPlatformIndow to LWWindowPeer, so it can be reused later by
>>> CPlatformEmbeddedFrame .
>>> 5. unnecessary peers set** methods and unnecessary delegate in
>>> LWCanvasPeer were removed: changes in LWCanvasPeer.java,
>>> LWListPeer.java, LWPanelPeer.java.
>>>
>>> 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/
>>>
>>
>>
--
Best regards, Sergey.
More information about the macosx-port-dev
mailing list