summaryrefslogtreecommitdiffstats
path: root/src/gui/widgets/qmenu.cpp
diff options
context:
space:
mode:
authorThierry Bastian <thierry.bastian@nokia.com>2009-10-26 14:54:18 (GMT)
committerThierry Bastian <thierry.bastian@nokia.com>2009-10-27 09:45:13 (GMT)
commit68ab3b34571cfdde4002de9982388f9eec4d9939 (patch)
tree32594d5ba2dba363d0afdf87df136f0249617224 /src/gui/widgets/qmenu.cpp
parent2d750192e73244f5b4ad6b451f264728d42669be (diff)
downloadQt-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.cpp4
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)