diff -Nru qtbase-opensource-src-5.5.1+dfsg/debian/changelog qtbase-opensource-src-5.5.1+dfsg/debian/changelog --- qtbase-opensource-src-5.5.1+dfsg/debian/changelog 2017-03-23 20:18:02.000000000 +0000 +++ qtbase-opensource-src-5.5.1+dfsg/debian/changelog 2017-05-03 19:22:47.000000000 +0000 @@ -1,3 +1,10 @@ +qtbase-opensource-src (5.5.1+dfsg-16ubuntu7.5) xenial; urgency=medium + + * Backport upstream change to fix behavior of QMenuBar::isNativeMenuBar() + method (fix_isNativeMenuBar.diff). This should finally fix LP: #1380702. + + -- Dmitry Shachnev Wed, 03 May 2017 22:22:47 +0300 + qtbase-opensource-src (5.5.1+dfsg-16ubuntu7.4) xenial; urgency=medium [ Elvis Stansvik ] diff -Nru qtbase-opensource-src-5.5.1+dfsg/debian/patches/fix_isNativeMenuBar.diff qtbase-opensource-src-5.5.1+dfsg/debian/patches/fix_isNativeMenuBar.diff --- qtbase-opensource-src-5.5.1+dfsg/debian/patches/fix_isNativeMenuBar.diff 1970-01-01 00:00:00.000000000 +0000 +++ qtbase-opensource-src-5.5.1+dfsg/debian/patches/fix_isNativeMenuBar.diff 2017-05-03 19:22:36.000000000 +0000 @@ -0,0 +1,65 @@ +Description: make QMenuBar::isNativeMenuBar() more reliable + Now it will not return true if the QPA plugin provides no platform menu bar, + and will not return false when Ubuntu global menu is in use. + . + Instead of trying to keep that variable in sync with platformMenuBar + state, just check whether platformMenuBar exists instead. +Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=835d7cf54328bdd9 +Last-Update: 2017-05-03 + +--- a/src/widgets/widgets/qmenubar.cpp ++++ b/src/widgets/widgets/qmenubar.cpp +@@ -1810,10 +1810,8 @@ + void QMenuBar::setNativeMenuBar(bool nativeMenuBar) + { + Q_D(QMenuBar); +- if (d->nativeMenuBar == -1 || (nativeMenuBar != bool(d->nativeMenuBar))) { +- d->nativeMenuBar = nativeMenuBar; +- +- if (!d->nativeMenuBar) { ++ if (nativeMenuBar != bool(d->platformMenuBar)) { ++ if (!nativeMenuBar) { + delete d->platformMenuBar; + d->platformMenuBar = 0; + } else { +@@ -1822,7 +1820,7 @@ + } + + updateGeometry(); +- if (!d->nativeMenuBar && parentWidget()) ++ if (!nativeMenuBar && parentWidget()) + setVisible(true); + } + } +@@ -1830,10 +1828,7 @@ + bool QMenuBar::isNativeMenuBar() const + { + Q_D(const QMenuBar); +- if (d->nativeMenuBar == -1) { +- return !QApplication::instance()->testAttribute(Qt::AA_DontUseNativeMenuBar); +- } +- return d->nativeMenuBar; ++ return bool(d->platformMenuBar); + } + + /*! +--- a/src/widgets/widgets/qmenubar_p.h ++++ b/src/widgets/widgets/qmenubar_p.h +@@ -59,7 +59,7 @@ + public: + QMenuBarPrivate() : itemsDirty(0), currentAction(0), mouseDown(0), + closePopupMode(0), defaultPopDown(1), popupState(0), keyboardState(0), altPressed(0), +- nativeMenuBar(-1), doChildEffects(false), platformMenuBar(0) ++ doChildEffects(false), platformMenuBar(0) + + #ifdef Q_OS_WINCE + , wce_menubar(0), wceClassicMenu(false) +@@ -102,8 +102,6 @@ + uint keyboardState : 1, altPressed : 1; + QPointer keyboardFocusWidget; + +- +- int nativeMenuBar : 3; // Only has values -1, 0, and 1 + //firing of events + void activateAction(QAction *, QAction::ActionEvent); + diff -Nru qtbase-opensource-src-5.5.1+dfsg/debian/patches/series qtbase-opensource-src-5.5.1+dfsg/debian/patches/series --- qtbase-opensource-src-5.5.1+dfsg/debian/patches/series 2017-03-23 20:24:33.000000000 +0000 +++ qtbase-opensource-src-5.5.1+dfsg/debian/patches/series 2017-05-03 19:18:27.000000000 +0000 @@ -37,6 +37,7 @@ xcb-Fix-drag-and-drop-to-applications-like-Emacs-and.patch xcb-Fix-drag-and-drop-to-Emacs.patch Fix-parsing-of-tzfile-5-POSIX-rule-zone-names-with-b.patch +fix_isNativeMenuBar.diff global_menu_shortcuts.diff xcb-compress-mouse-motion-and-touch-update-events.patch