https://bugreports.qt.io/browse/QTBUG-135158 https://codereview.qt-project.org/c/qt/qtdeclarative/+/647212 --- a/src/quicktemplates/qquickpopuppositioner.cpp +++ b/src/quicktemplates/qquickpopuppositioner.cpp @@ -321,5 +321,8 @@ : p->parentItem->mapToGlobal(windowPos.x(), windowPos.y()); QRectF rect = { globalCoords.x(), globalCoords.y(), popupItem->width(), popupItem->height() }; - if (!skipFittingStep) { + + // QTBUG-99618: On wayland, we can't use QWindow::mapToGlobal(), and should use a xdg_positioner instead. + static bool isWayland = QGuiApplication::platformName().startsWith(QLatin1String("wayland")); + if (!skipFittingStep && !isWayland) { const QScreen *screenAtPopupPosition = QGuiApplication::screenAt(globalCoords.toPoint()); const QScreen *screen = screenAtPopupPosition ? screenAtPopupPosition : QGuiApplication::primaryScreen();