diff options
author | Thierry Bastian <thierry.bastian@nokia.com> | 2009-10-26 14:54:18 (GMT) |
---|---|---|
committer | Thierry Bastian <thierry.bastian@nokia.com> | 2009-10-27 09:45:13 (GMT) |
commit | 68ab3b34571cfdde4002de9982388f9eec4d9939 (patch) | |
tree | 32594d5ba2dba363d0afdf87df136f0249617224 /src/gui/widgets/qmenu.cpp | |
parent | 2d750192e73244f5b4ad6b451f264728d42669be (diff) | |
download | Qt-68ab3b34571cfdde4002de9982388f9eec4d9939.zip Qt-68ab3b34571cfdde4002de9982388f9eec4d9939.tar.gz Qt-68ab3b34571cfdde4002de9982388f9eec4d9939.tar.bz2 |
Fixed a bug in QMenuBar in RTL that would display menu at the wrong place
This could happen when adding actions in response to the aboutToShow
signal.
Task-number: QT-2596
Reviewed-by: ogoffart
Diffstat (limited to 'src/gui/widgets/qmenu.cpp')
-rw-r--r-- | src/gui/widgets/qmenu.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp index ea25901..1b5d1cd 100644 --- a/src/gui/widgets/qmenu.cpp +++ b/src/gui/widgets/qmenu.cpp @@ -1878,6 +1878,10 @@ void QMenu::popup(const QPoint &p, QAction *atAction) if(snapToMouse) //position flowing left from the mouse pos.setX(mouse.x()-size.width()); + //if in a menubar, it should be right-aligned + if (qobject_cast<QMenuBar*>(d->causedPopup.widget)) + pos.rx() -= size.width(); + if (pos.x() < screen.left()+desktopFrame) pos.setX(qMax(p.x(), screen.left()+desktopFrame)); if (pos.x()+size.width()-1 > screen.right()-desktopFrame) |