diff -r 56cd8111b7f7 -r 41300fa6a67c tools/designer/src/lib/shared/qdesigner_menubar.cpp --- 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();