I have not been able to create a minimal program to reproduce, nor have I been able to prove it isn’t a bad merge with my fork of juce. It has something to do with opaque components, but not sure what yet.
Assuming you do have that commit, the thing to start looking at is the calls to getNonObscuredBoundsFor() in paintComponentAndChildren().
One thing I might suggest is doing a binary chop to find just a single opaque component with the issue (if possible). Go through all your opaque components set half to not be opaque, see if the problem goes away, if it doesn’t, find the next half to flip, if it does go away try switching half of the ones you switched off back on, keep doing that until you find ideally just one opaque component causing the issue. This will hopefully keep the debugging simple.
Alternatively it looks like it might be quite clear which components are not painting because they have concluded they are covered by an opaque component. This might also help debugging you’ll either find that
The parent of the component not being painted has skipped painting the component here
or
The component itself skips it’s paint function, here
There are a few other things running through my mind to look at but lets start there and see where we get to.
@RolandMR don’t know why I didn’t think of this yesterday but can you check the new Component unit tests are passing for you? if not then I think we can confidently say it’s a merge issue. If they are passing then I suspect we have a slightly more complicated interaction occurring.
I see a problem but don’t have a moment to roll back and compare commits.
In the DemoRunner, when selecting:
The GraphicsDemo
Lines
with “Higher quality image interpolation” enabled
with “Clip to Image” enabled.
the end result is flickering and some other unexpected issue(s). I’ve tried the others with various configurations/settings; this is the only weird piece.
@jrlanglois thanks for reporting I can reproduce the issue you are referring to (although I don’t need to enable “Higher quality image interopoation”). I’ve checked and this at least exists on master which means this issue is not caused by the above commit.
@jrlanglois the oldest version I’ve been able to test is 5.4.6 and the issue exists there! Is this causing an issue for you or is it just something you stumbled upon?