Add workaround for QMenuBar::setVisible bug in 5.7.0
Summary: 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); } BUG: 375498 Test Plan: Ran on a system with Qt 5.7.0 No longer get double menus Reviewers: #plasma Subscribers: plasma-devel Tags: #plasma Differential Revision: https://phabricator.kde.org/D4276
parent
026277d1
Please register or sign in to comment