diff options
author | David Faure <david.faure@kdab.com> | 2021-03-18 11:24:10 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2021-03-18 11:38:51 +0100 |
commit | 0e67fb41cfc4b4bfbaa7dc75f8ddebdf5a08e836 (patch) | |
tree | 02966260ed1cb094f097565530b62eac164c7198 /src/x11extras/qx11info_x11.cpp | |
parent | 64e2a26867a7ba66b3efbda625bf41e6e7efd794 (diff) | |
download | qtx11extras-0e67fb41cfc4b4bfbaa7dc75f8ddebdf5a08e836.tar.gz |
Fix crash due to bad cast to QXcbScreen
Fixes: QTBUG-91913
Change-Id: I498b8a18b7f47f94fd610f13797473951ea98f85
Reviewed-by: Liang Qi <liang.qi@qt.io>
Diffstat (limited to 'src/x11extras/qx11info_x11.cpp')
-rw-r--r-- | src/x11extras/qx11info_x11.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/x11extras/qx11info_x11.cpp b/src/x11extras/qx11info_x11.cpp index ace0b6e..1ad1c75 100644 --- a/src/x11extras/qx11info_x11.cpp +++ b/src/x11extras/qx11info_x11.cpp @@ -50,6 +50,7 @@ #include <qpa/qplatformnativeinterface.h> #include <qpa/qplatformwindow.h> #include <qpa/qplatformscreen_p.h> +#include <qpa/qplatformscreen.h> #include <qscreen.h> #include <qwindow.h> #include <qguiapplication.h> @@ -62,8 +63,8 @@ static QScreen *findScreenForVirtualDesktop(int virtualDesktopNumber) { const auto screens = QGuiApplication::screens(); for (QScreen *screen : screens) { - auto *qxcbScreen = dynamic_cast<QNativeInterface::Private::QXcbScreen *>(screen); - if (qxcbScreen->virtualDesktopNumber() == virtualDesktopNumber) + auto *qxcbScreen = dynamic_cast<QNativeInterface::Private::QXcbScreen *>(screen->handle()); + if (qxcbScreen && qxcbScreen->virtualDesktopNumber() == virtualDesktopNumber) return screen; } return nullptr; |