From 4609cc8631c00a47d2faea3b684d4e81ad1c54e7 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Fri, 8 Apr 2022 11:31:02 +0200 Subject: [PATCH] xcb: compare with screen name instead of old monitor info MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit because the old xcb_randr_monitor_info_t was invalid very often during update. Pick-to: 6.3 Change-Id: I8c0bda93bde4e816fc98cde1a7205c6369ab39e1 Reviewed-by: Tor Arne Vestbø --- src/plugins/platforms/xcb/qxcbconnection_screens.cpp | 5 ++--- tests/manual/qscreen_xrandr/tst_qscreen_xrandr.cpp | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/plugins/platforms/xcb/qxcbconnection_screens.cpp b/src/plugins/platforms/xcb/qxcbconnection_screens.cpp index eef563917c2..a9bc2ae2678 100644 --- a/src/plugins/platforms/xcb/qxcbconnection_screens.cpp +++ b/src/plugins/platforms/xcb/qxcbconnection_screens.cpp @@ -330,10 +330,9 @@ QXcbScreen *QXcbConnection::findScreenForMonitorInfo(const QList(screens[i]); - if (s->m_monitor && monitorInfo) { - QByteArray ba1 = atomName(s->m_monitor->name); + if (monitorInfo) { QByteArray ba2 = atomName(monitorInfo->name); - if (ba1 == ba2) + if (s->name().toLocal8Bit() == ba2) return s; } } diff --git a/tests/manual/qscreen_xrandr/tst_qscreen_xrandr.cpp b/tests/manual/qscreen_xrandr/tst_qscreen_xrandr.cpp index 293dec47b48..ed084253869 100644 --- a/tests/manual/qscreen_xrandr/tst_qscreen_xrandr.cpp +++ b/tests/manual/qscreen_xrandr/tst_qscreen_xrandr.cpp @@ -143,7 +143,7 @@ void tst_QScreen_Xrandr::xrandr_15_scale() QVERIFY(height2 == expectedHeight); QVERIFY(width2 == expectedWidth); - QSignalSpy geometryChangedSpy2(screen1, &QScreen::geometryChanged); + QSignalSpy geometryChangedSpy2(screen2, &QScreen::geometryChanged); // "xrandr --output name1 --scale 1x1" args.clear();