QMenuBar::setVisible() only checks isNativeMenuBar on OS X
leading to both the normal in-appmenu and the platform menu both being
visible - especially as KXmlGui explicitly has a setVisible call.
This only affects Qt 5.7.0.
For Qt < 5.7.0 we don't have any DBusMenu support.
For Qt >= 5.7.1 the problem is fixed.
This patch adds a (horrible) event filter on any QMenuBar's and blocks
any setVisible calls.
Qt 5.7.0
void QMenuBar::setVisible(bool visible)
{
if (isNativeMenuBar()) { if (!visible) QWidget::setVisible(false); return; } QWidget::setVisible(visible);
}
Qt 5.7.1
void QMenuBar::setVisible(bool visible)
{
if (isNativeMenuBar()) { if (!visible) QWidget::setVisible(false); return; } QWidget::setVisible(visible);
}