I also experience the same menu bar problems. I traced the problem to the LinuxComponentPeer::contains() function in juce_linux_Windowing.cpp. If you switch back the implementation of this function to the pre-1.27 implementation, it works as expected (and so does the demo).
I used this code:
bool contains (int x, int y, bool trueIfInAChildWindow) const
{
if (x < 0 || y < 0)
return false;
::Window root, child;
unsigned int bw, depth;
int wx, wy, w, h;
if (! XGetGeometry (display, (Drawable) windowH, &root,
&wx, &wy, (unsigned int*) &w, (unsigned int*) &h,
&bw, &depth))
{
return false;
}
if (x >= w || y >= h)
return false;
if (trueIfInAChildWindow)
return true;
if (! XTranslateCoordinates (display, windowH, windowH, x, y, &wx, &wy, &child))
{
return false;
}
return child == None;
}
BTW: I also had to uncomment the linux/types.h include.