JUCE assertion and invisible modal dialog bug under Linux

There seems to be a bit of a problem-ette with modal dialogs under Linux. At first I thought it was a problem with my code, but I’ve also witnessed the same problem with the AudioDeviceSelectorComponent, and with the Jucer preferences dialog. From this I assume it affects all modal dialogs…

The problem manifests itself as an invisible modal dialog. It’s still visible on the Task Bar, and if you right-click/close it, the app seems to continue happily. An assertion is also hit in ResizableWindow::childBoundsChanged

// not going to look very good if this component has a zero size.. jassert (child->getWidth() > 0); jassert (child->getHeight() > 0);

It occurs sporadically: sometimes, the first time you display a modal dialog, it will occur. Other times, you’ll need to open and close the dialog five or six times before it happens. The easiest way of replicating is to build the Jucer, and repeatedly open and then close the preferences dialog a few times.

This only seems to affect JUCE under Linux; neither Mac, nor Windows display this problem. This was witnessed using the latest trunk from the svn repository.

Ok, I’ll have to take a look at that. It must just be missing the close message or something…