summaryrefslogtreecommitdiff
path: root/src/controls/qquickmenupopupwindow.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@digia.com>2013-08-01 11:44:50 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-08-13 19:15:20 +0200
commitc4008e9f7e19cea0d36c979ea680a07486cc9184 (patch)
tree4819f88c2070a3f163710feead969cbb48d76f7d /src/controls/qquickmenupopupwindow.cpp
parent3d0e27a2deb6ab9a0c68b19dbf3e41211967acd4 (diff)
downloadqtquickcontrols-c4008e9f7e19cea0d36c979ea680a07486cc9184.tar.gz
Menus: add RTL support
Change-Id: I60f997e545076feb5b72fb9eb4a03b050db5f511 Reviewed-by: Caroline Chao <caroline.chao@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Diffstat (limited to 'src/controls/qquickmenupopupwindow.cpp')
-rw-r--r--src/controls/qquickmenupopupwindow.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/controls/qquickmenupopupwindow.cpp b/src/controls/qquickmenupopupwindow.cpp
index b44b082c..19d85de0 100644
--- a/src/controls/qquickmenupopupwindow.cpp
+++ b/src/controls/qquickmenupopupwindow.cpp
@@ -84,6 +84,8 @@ void QQuickMenuPopupWindow::show()
posy -= pos.y();
}
+ m_initialPos = QPointF(posx, posy);
+
if (m_menuContentItem) {
qreal initialWidth = qMax(qreal(1), m_menuContentItem->width());
qreal initialHeight = qMax(qreal(1), m_menuContentItem->height());
@@ -180,7 +182,11 @@ void QQuickMenuPopupWindow::dismissMenu()
void QQuickMenuPopupWindow::updateSize()
{
QSize contentSize = contentItem()->childrenRect().size().toSize();
- setGeometry(position().x(), position().y(), contentSize.width(), contentSize.height());
+ qreal x = m_initialPos.x();
+ qreal y = m_initialPos.y();
+ if (qGuiApp->layoutDirection() == Qt::RightToLeft)
+ x -= contentSize.width();
+ setGeometry(x, y, contentSize.width(), contentSize.height());
}
void QQuickMenuPopupWindow::updatePosition()