From 475cb3d6a62bf9d8aea0b10f4f802e3bf231ca06 Mon Sep 17 00:00:00 2001 From: q66 Date: Fri, 23 Aug 2019 13:59:57 +0200 Subject: [PATCH] qt5: fix scroll wheel on big endian systems [ci skip] --- .../qt5/patches/0049-big-endian-scroll.patch | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 srcpkgs/qt5/patches/0049-big-endian-scroll.patch diff --git a/srcpkgs/qt5/patches/0049-big-endian-scroll.patch b/srcpkgs/qt5/patches/0049-big-endian-scroll.patch new file mode 100644 index 00000000000..013fa6a1ab4 --- /dev/null +++ b/srcpkgs/qt5/patches/0049-big-endian-scroll.patch @@ -0,0 +1,54 @@ +--- qtbase/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp ++++ qtbase/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp +@@ -43,6 +43,7 @@ + #include "qxcbwindow.h" + #include "qtouchdevice.h" + #include "QtCore/qmetaobject.h" ++#include "QtCore/qendian.h" + #include + #include + #include +@@ -66,6 +67,7 @@ + xiEventMask.mask = XCB_INPUT_XI_EVENT_MASK_HIERARCHY; + xiEventMask.mask |= XCB_INPUT_XI_EVENT_MASK_DEVICE_CHANGED; + xiEventMask.mask |= XCB_INPUT_XI_EVENT_MASK_PROPERTY; ++ xiEventMask.mask = qToLittleEndian(xiEventMask.mask); + xcb_input_xi_select_events(xcb_connection(), rootWindow(), 1, &xiEventMask.header); + } + +@@ -90,7 +92,7 @@ + qt_xcb_input_event_mask_t mask; + mask.header.deviceid = XCB_INPUT_DEVICE_ALL_MASTER; + mask.header.mask_len = 1; +- mask.mask = bitMask; ++ mask.mask = qToLittleEndian(bitMask); + xcb_void_cookie_t cookie = + xcb_input_xi_select_events_checked(xcb_connection(), window, 1, &mask.header); + xcb_generic_error_t *error = xcb_request_check(xcb_connection(), cookie); +@@ -359,7 +361,7 @@ + qt_xcb_input_event_mask_t xiMask; + xiMask.header.deviceid = XCB_INPUT_DEVICE_ALL_MASTER; + xiMask.header.mask_len = 1; +- xiMask.mask = mask; ++ xiMask.mask = qToLittleEndian(mask); + + xcb_void_cookie_t cookie = + xcb_input_xi_select_events_checked(xcb_connection(), window, 1, &xiMask.header); +@@ -386,7 +388,7 @@ + tabletDevices.insert(deviceId); + xiEventMask[i].header.deviceid = deviceId; + xiEventMask[i].header.mask_len = 1; +- xiEventMask[i].mask = mask; ++ xiEventMask[i].mask = qToLittleEndian(mask); + } + xcb_input_xi_select_events(xcb_connection(), window, nrTablets, &(xiEventMask.data()->header)); + } +@@ -402,7 +404,7 @@ + #endif + xiEventMask[i].header.deviceid = scrollingDevice.deviceId; + xiEventMask[i].header.mask_len = 1; +- xiEventMask[i].mask = mask; ++ xiEventMask[i].mask = qToLittleEndian(mask); + i++; + } + xcb_input_xi_select_events(xcb_connection(), window, i, &(xiEventMask.data()->header));