In the recent discussions (following the regression in 1.6.5) it turned out that the painting behaviour isn't fully defined which leads to differing expectations.
So starting this as a task to
- define the contracts/behaviour
- implement as defined
It's an umbrella for several aspects, covered in separate sub-tasks. Ideally, there'll be animated discussions with many participants about all aspects, either in the tasks or in the forum, best with visual examples of what/how/not is painted (slightly hampered by no longer being able to attach anything to jira issues - when did that change?)
Below are some aspects (edit/add as appropriate)
Paint layer, from lowest to highest:
- background color
- background painter (swingx and/or core/laf provided)
- foreground (== content painted by laf)
- container alpha property
- background color alpha channel
- contract of isOpaque
- developer's intention
The developer should have full control of what is painted. The system should take over all the heavy lifting and automatically take care of not violating contracts.