GLCanvas/Canvas/getMinimumSize(), is this a bug?

I’m using several GLCanvas in a GridBagLayout for some scientific displays. Part of the inferface involves hiding and showing various displays. The GLCanvas shows interesting behavior.

Imagine a grid bag of 2 rows, 1 column, fill = BOTH. I’ve placed a GLCanvas in each. If I hide one (setVisible(false)) and relayout, everything works fine. The other canvas reclaims the space. Fantastic. Now I show the hidden canvas (setVisible(true)) and relayout. The hidden canvas comes back up far smaller than previously and the weighting between the two canvases is no longer 50/50 like when I started.

Now I’ve modified GLCanvas to return Dimenion(0,0) for getMinimumSize() and everything works like a champ, no longer do the sizes get all borked. I feel like this fix actually goes higher than GLCanvas and into Canvas.

Is this really a bug at the Jogl level? Java level? Am I missing something here?

If that wasn’t clear, I can post code.

This is not a bug but the default behavior of the Canvas class. Due to how various LayoutManagers work there is no way to fix this problem without breaking something else. See the section “Heavyweight and Lightweight Issues” in the JOGL User’s Guide for more details.