| Summary: | KXmlGui forcefully shows menu bar even though a native menu exists | ||
|---|---|---|---|
| Product: | [Frameworks and Libraries] frameworks-kxmlgui | Reporter: | Kai Uwe Broulik <kde> |
| Component: | general | Assignee: | kdelibs bugs <kdelibs-bugs-null> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | aacid |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Other | ||
| OS: | Linux | ||
| Latest Commit: | https://commits.kde.org/plasma-integration/bac5a39f01a88edd1a1165d3f3d08507742367fe | Version Fixed/Implemented In: | |
| Sentry Crash Report: | |||
|
Description
Kai Uwe Broulik
2017-01-24 13:03:55 UTC
I don't think the problem lies in kxmlgui, unity 7 shows no menubar at all in kate, just the native menu, so the problem must be somewhere else? Git commit bac5a39f01a88edd1a1165d3f3d08507742367fe by David Edmundson.
Committed on 25/01/2017 at 12:17.
Pushed by davidedmundson into branch 'Plasma/5.9'.
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);
}
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
M +42 -0 src/platformtheme/qdbusmenubar.cpp
M +2 -0 src/platformtheme/qdbusmenubar_p.h
https://commits.kde.org/plasma-integration/bac5a39f01a88edd1a1165d3f3d08507742367fe
|