It appears I have run into a bug in either OS X or Juce with resizing partially transparent windows with drop shadows. We have a window with rounded corners implemented as a non-opaque window that we slap a .png onto. With the click of a button, the window will grow in size downward. The problem is that when it is done growing, there are little “tails” showing at the bottom corners where there should be nothing.
To figure out what is going on I created another much simpler program. In this case I created an application composed of a single transparent window with a single button. Clicking the button resizes the window, growing it by one row of pixels. I add the window to the desktop with drop shadows enabled. What you see on the desktop is the single button with a drop shadow around it. Now click the button and what you see is the new row of pixels with a grey border around it when you should see nothing because the window is transparent.
It appears that what happens is that when the window is resized, a new row of opaque pixels is added, then the Mac draws a drop shadow around the new row, then the row is switched to transparent, but remnants of the drop shadow remain.
I can post code if desired, but the program is really really simple.
Here you go. I whittled it down to the bare minimum. I am running OSX 10.5.7 if that matters.
#include <juce/juce.h>
class MainWindow: public Component, public ButtonListener
{
public:
MainWindow()
{
m_testButton = new TextButton(“Grow”);
m_testButton->setSize(100, 30);
m_testButton->setTopLeftPosition(40, 10);
this->addAndMakeVisible(m_testButton);
m_testButton->addButtonListener(this);
Switching from 1.46 to the latest build from Subversion fixed the problem. I did not have to add your suggested change, just switching to the latest code fixed it.