Bug 40392 - JGVTComponent doesn't respect the opacity setting
Summary: JGVTComponent doesn't respect the opacity setting
Status: RESOLVED INVALID
Alias: None
Product: Batik - Now in Jira
Classification: Unclassified
Component: GVT (show other bugs)
Version: 1.6
Hardware: Other other
: P3 normal
Target Milestone: ---
Assignee: Batik Developer's Mailing list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-09-01 16:48 UTC by Kirill Grouchnikov
Modified: 2006-09-05 04:25 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kirill Grouchnikov 2006-09-01 16:48:55 UTC
The JGVTComponent.paintComponent ignores the opacity setting and paints the
background in any case:

        g2d.setComposite(AlphaComposite.SrcOver);
        g2d.setPaint(getBackground());
        g2d.fillRect(visRect.x,     visRect.y, 
                     visRect.width, visRect.height);

A workaround is to set the background to new Color(0x0, true)
Comment 1 Thomas Deweese 2006-09-05 11:25:06 UTC
(In reply to comment #0)
> The JGVTComponent.paintComponent ignores the opacity setting and paints the
> background in any case:

   I take it you are refering to:
      JComponent.setOpaque(boolean isOpaque)

   If so your 'workaround' is the correct answer.  One might
argue that Batik should look at the 'Background' given and
setOpaque(flase) if the background color has an alpha less
than 1.0 (255).  The purpose of setOpaque is to inform
Swing that it needs to draw any components that are 'under'
the canvas.  Otherwise it skips painting them under the
assumption that the Canvas will simply cover them.

> A workaround is to set the background to new Color(0x0, true)

   This is in fact the correct thing to do.