QMenu: fix PM_SubMenuOverlap in rtl mode
The submenu in rtl mode was not placed correctly due to the missing handling of PM_SubMenuOverlap. Pick-to: 6.5 Task-number: QTBUG-129716 Change-Id: I0a0d6a9007b4427a95a92b81a3450d65b944189c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> (cherry picked from commit 87c6d142d25bec937c0a521830fcb9e06d921114) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
cc331ef757
commit
18b01267a6
@ -3634,7 +3634,8 @@ void QMenu::internalDelayedPopup()
|
||||
|
||||
int subMenuOffset = style()->pixelMetric(QStyle::PM_SubMenuOverlap, nullptr, this);
|
||||
const QRect actionRect(d->actionRect(d->currentAction));
|
||||
QPoint subMenuPos(mapToGlobal(QPoint(actionRect.right() + subMenuOffset + 1, actionRect.top())));
|
||||
const auto ofs = isRightToLeft() ? (-subMenuOffset - actionRect.width() + 1) : subMenuOffset;
|
||||
QPoint subMenuPos(mapToGlobal(QPoint(actionRect.right() + ofs, actionRect.top())));
|
||||
if (subMenuPos.x() > screen.right())
|
||||
subMenuPos.setX(geometry().left());
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user