diff options
Diffstat (limited to 'gnu/packages/patches/kwindowsystem-qt-compat.patch')
-rw-r--r-- | gnu/packages/patches/kwindowsystem-qt-compat.patch | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/gnu/packages/patches/kwindowsystem-qt-compat.patch b/gnu/packages/patches/kwindowsystem-qt-compat.patch deleted file mode 100644 index ef31636917..0000000000 --- a/gnu/packages/patches/kwindowsystem-qt-compat.patch +++ /dev/null @@ -1,97 +0,0 @@ -Fix test failure with Qt 5.12. - -Taken from upstream: -https://cgit.kde.org/kwindowsystem.git/commit/?id=14998613603c7d8f91b011a2c9c20396067add0e - -diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt -index f8e67f0..c1121a7 100644 ---- a/autotests/CMakeLists.txt -+++ b/autotests/CMakeLists.txt -@@ -12,12 +12,12 @@ add_subdirectory(helper) - - if (NOT APPLE) - find_package(X11) -- find_package(XCB COMPONENTS XCB KEYSYMS) -+ find_package(XCB COMPONENTS XCB ICCCM KEYSYMS) - endif() - - macro(KWINDOWSYSTEM_UNIT_TESTS) - foreach(_testname ${ARGN}) -- set(libs KF5::WindowSystem Qt5::Test Qt5::Widgets Qt5::X11Extras XCB::KEYSYMS) -+ set(libs KF5::WindowSystem Qt5::Test Qt5::Widgets Qt5::X11Extras XCB::ICCCM XCB::KEYSYMS) - if(X11_FOUND) - list(APPEND libs ${XCB_XCB_LIBRARY}) - endif() -diff --git a/autotests/kwindowinfox11test.cpp b/autotests/kwindowinfox11test.cpp -index 634c650..f483c46 100644 ---- a/autotests/kwindowinfox11test.cpp -+++ b/autotests/kwindowinfox11test.cpp -@@ -25,8 +25,11 @@ - #include <qtest_widgets.h> - #include <QScreen> - #include <QSignalSpy> -+#include <QSysInfo> - #include <QX11Info> - -+#include <xcb/xcb_icccm.h> -+ - #include <unistd.h> - - Q_DECLARE_METATYPE(WId) -@@ -598,19 +601,23 @@ void KWindowInfoX11Test::testWindowRole() - - void KWindowInfoX11Test::testClientMachine() - { -+ const QByteArray oldHostName = QSysInfo::machineHostName().toLocal8Bit(); -+ - KWindowInfo info(window->winId(), NET::Properties(), NET::WM2ClientMachine); -- QVERIFY(info.clientMachine().isNull()); -+ QCOMPARE(info.clientMachine(), oldHostName); - - // client machine needs to be set through xcb -+ const QByteArray newHostName = oldHostName + "2"; - xcb_change_property(QX11Info::connection(), XCB_PROP_MODE_REPLACE, window->winId(), -- XCB_ATOM_WM_CLIENT_MACHINE, XCB_ATOM_STRING, 8, 9, "localhost"); -+ XCB_ATOM_WM_CLIENT_MACHINE, XCB_ATOM_STRING, 8, newHostName.count(), -+ newHostName.data()); - xcb_flush(QX11Info::connection()); - - // it's just a property change so we can easily refresh - QX11Info::getTimestamp(); - - KWindowInfo info2(window->winId(), NET::Properties(), NET::WM2ClientMachine); -- QCOMPARE(info2.clientMachine(), QByteArrayLiteral("localhost")); -+ QCOMPARE(info2.clientMachine(), newHostName); - } - - void KWindowInfoX11Test::testName() -@@ -680,11 +687,25 @@ void KWindowInfoX11Test::testTransientFor() - - void KWindowInfoX11Test::testGroupLeader() - { -- KWindowInfo info(window->winId(), NET::Properties(), NET::WM2GroupLeader); -- QCOMPARE(info.groupLeader(), WId(0)); -+ // WM_CLIENT_LEADER is set by default -+ KWindowInfo info1(window->winId(), NET::Properties(), NET::WM2GroupLeader); -+ QVERIFY(info1.groupLeader() != XCB_WINDOW_NONE); -+ -+ xcb_connection_t *connection = QX11Info::connection(); -+ xcb_window_t rootWindow = QX11Info::appRootWindow(); -+ -+ xcb_window_t leader = xcb_generate_id(connection); -+ xcb_create_window(connection, XCB_COPY_FROM_PARENT, leader, rootWindow, 0, 0, 1, 1, -+ 0, XCB_WINDOW_CLASS_INPUT_OUTPUT, XCB_COPY_FROM_PARENT, 0, nullptr); -+ -+ xcb_icccm_wm_hints_t hints = {}; -+ hints.flags = XCB_ICCCM_WM_HINT_WINDOW_GROUP; -+ hints.window_group = leader; -+ xcb_icccm_set_wm_hints(connection, leader, &hints); -+ xcb_icccm_set_wm_hints(connection, window->winId(), &hints); - -- // TODO: here we should try to set a group leader and re-read it -- // this needs setting and parsing the WMHints -+ KWindowInfo info2(window->winId(), NET::Properties(), NET::WM2GroupLeader); -+ QCOMPARE(info2.groupLeader(), leader); - } - - void KWindowInfoX11Test::testExtendedStrut() |