tools/designer/src/lib/shared/qdesigner_menubar.cpp
changeset 3 41300fa6a67c
parent 0 1918ee327afb
child 4 3b1da2848fc7
--- a/tools/designer/src/lib/shared/qdesigner_menubar.cpp	Tue Jan 26 12:42:25 2010 +0200
+++ b/tools/designer/src/lib/shared/qdesigner_menubar.cpp	Tue Feb 02 00:43:10 2010 +0200
@@ -867,7 +867,15 @@
             if ((menu->windowFlags() & Qt::Popup) != Qt::Popup)
                 menu->setWindowFlags(Qt::Popup);
             menu->adjustSize();
-            menu->move(mapToGlobal(g.bottomLeft()));
+            if (layoutDirection() == Qt::LeftToRight) {
+                menu->move(mapToGlobal(g.bottomLeft()));
+            } else {
+                // The position is not initially correct due to the unknown width,
+                // causing it to overlap a bit the first time it is invoked.
+                const QSize menuSize = menu->size();
+                QPoint point = g.bottomRight() - QPoint(menu->width(), 0);
+                menu->move(mapToGlobal(point));
+            }
             menu->setFocus(Qt::MouseFocusReason);
             menu->raise();
             menu->show();