diff --git a/src/widgets/widgets/qtoolbar.cpp b/src/widgets/widgets/qtoolbar.cpp index ae0414e7764..b5950fdf238 100644 --- a/src/widgets/widgets/qtoolbar.cpp +++ b/src/widgets/widgets/qtoolbar.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #ifdef Q_OS_MACOS #include @@ -309,7 +310,12 @@ bool QToolBarPrivate::mouseMoveEvent(QMouseEvent *event) const QPoint globalPressPos = q->mapToGlobal(q->isRightToLeft() ? rtl : state->pressPos); int pos = 0; - QPoint delta = event->globalPosition().toPoint() - globalPressPos; + const QWindow *handle = q->window() ? q->window()->windowHandle() : nullptr; + const QPoint delta = handle + ? QHighDpi::fromNativePixels(event->globalPosition(), handle).toPoint() + - QHighDpi::fromNativePixels(globalPressPos, handle) + : event->globalPosition().toPoint() - globalPressPos; + if (orientation == Qt::Vertical) { pos = q->y() + delta.y(); } else {