<Swing Dev> [9] Review request for 8027639: JComboBox's popup leaves tracks after closing
Semyon Sadetsky
semyon.sadetsky at oracle.com
Mon Nov 14 09:03:53 UTC 2016
Please review the updated webrev:
http://cr.openjdk.java.net/~ssadetsky/8027639/webrev.01/
- buffer fill color is changed to 0,0,0,0
- graphics context background color and composition is restored
- scenario when the buffered JComponent has transparent background and
opaque=true is taken into account
--Semyon
On 11/7/2016 7:01 PM, Sergey Bylokhov wrote:
> On 07.11.16 18:31, Semyon Sadetsky wrote:
>>> If it is src-over mean that in the window you will get a composite of
>>> colors, which was drawn to the backbuffer and the colors which was
>>> drawn in the window(which was drawn by the window itself). And in this
>>> case you will get a different results when you paint via backbuffer or
>>> when you skip it.
>> I did not get this. You've state if JRootPane has own different
>> transparent color than it may be painted twice.
>
> I am talking about the color of the window, you said that it is always
> painted.
> http://mail.openjdk.java.net/pipermail/swing-dev/2016-October/006854.html
> So if it always painted in case of non-opaque windows and you paint it
> to the backbuffer means that you paint it twice, no?
>
>> At first, I'm not sure that JRootPane may have such color. Because we
>> only support window translucency if window is non-opaque and having
>> non-opaque window with opaque JRootPane seems incorrect usage.
>
> The components can be opaque/non-opaque even if the window is
> opaque/non-opaque. They have a different meaning. For window this
> means that it has a transparent background, for components it means
> that before the component is painted all its containers should be
> painted first.
>
>> But anyway I don't see the way how the JRootPane transparent color may
>> be pained twice. For non-opaque JRootPane it's background color is not
>> painted, regardless of transparency. With opaque JRootPane the parent
>> window paint() method will not be called and window background will not
>> be painted.
>>>
>>>>>>>>> Should the previous composite be restored after the rect
>>>>>>>>> filling?
>>>>>>>> SRC should be the default composite type.
>>>>>>>
>>>>>>> default composite type should be srcOver, and it should be restored
>>>>>>> before call paintToOffscreen().
>>>>>
>>>>>
>>>>
>>>
>>>
>>
>
>
More information about the swing-dev
mailing list