summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
diff options
context:
space:
mode:
authorAlexander Volkov <a.volkov@rusbitech.ru>2016-02-25 16:22:32 +0300
committerShawn Rutledge <shawn.rutledge@qt.io>2018-02-04 08:25:19 +0000
commit6f03740a19cbba1b050466e4be27410c1f64bab4 (patch)
tree8fd6779e5dfdc286d664968aba8d6d3f109d74df /src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
parenta16d0074b9f2847fe475daa89c8174fd9d9898c0 (diff)
QPlatformWindow: add startSystemMove()
It can be used by custom widgets or for example by the Breeze style from KDE, which allows to drag windows by some widgets. It's important on X11 because _NET_WM_MOVERESIZE requests induced by touch sequences require support from Qt. Task-number: QTBUG-58044 Change-Id: I31c37534555a9050cf361cad85bdef13c2808572 Reviewed-by: Johan Helsing <johan.helsing@qt.io> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'src/plugins/platforms/xcb/qxcbconnection_xi2.cpp')
-rw-r--r--src/plugins/platforms/xcb/qxcbconnection_xi2.cpp22
1 files changed, 11 insertions, 11 deletions
diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
index ba6481082a..39d2857212 100644
--- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
+++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
@@ -784,15 +784,15 @@ void QXcbConnection::xi2ProcessTouch(void *xiDevEvent, QXcbWindow *platformWindo
}
if (dev->qtTouchDevice->type() == QTouchDevice::TouchScreen &&
- xiDeviceEvent->event == m_startSystemResizeInfo.window &&
- xiDeviceEvent->sourceid == m_startSystemResizeInfo.deviceid &&
- xiDeviceEvent->detail == m_startSystemResizeInfo.pointid) {
- QXcbWindow *window = platformWindowFromId(m_startSystemResizeInfo.window);
+ xiDeviceEvent->event == m_startSystemMoveResizeInfo.window &&
+ xiDeviceEvent->sourceid == m_startSystemMoveResizeInfo.deviceid &&
+ xiDeviceEvent->detail == m_startSystemMoveResizeInfo.pointid) {
+ QXcbWindow *window = platformWindowFromId(m_startSystemMoveResizeInfo.window);
if (window) {
XIAllowTouchEvents(static_cast<Display *>(m_xlib_display), xiDeviceEvent->deviceid,
xiDeviceEvent->detail, xiDeviceEvent->event, XIRejectTouch);
- window->doStartSystemResize(QPoint(x, y), m_startSystemResizeInfo.corner);
- m_startSystemResizeInfo.window = XCB_NONE;
+ window->doStartSystemMoveResize(QPoint(x, y), m_startSystemMoveResizeInfo.corner);
+ m_startSystemMoveResizeInfo.window = XCB_NONE;
}
}
break;
@@ -825,7 +825,7 @@ void QXcbConnection::xi2ProcessTouch(void *xiDevEvent, QXcbWindow *platformWindo
touchPoint.state = Qt::TouchPointStationary;
}
-bool QXcbConnection::startSystemResizeForTouchBegin(xcb_window_t window, const QPoint &point, Qt::Corner corner)
+bool QXcbConnection::startSystemMoveResizeForTouchBegin(xcb_window_t window, const QPoint &point, int corner)
{
QHash<int, TouchDeviceData>::const_iterator devIt = m_touchDevices.constBegin();
for (; devIt != m_touchDevices.constEnd(); ++devIt) {
@@ -834,10 +834,10 @@ bool QXcbConnection::startSystemResizeForTouchBegin(xcb_window_t window, const Q
QHash<int, QPointF>::const_iterator pointIt = deviceData.pointPressedPosition.constBegin();
for (; pointIt != deviceData.pointPressedPosition.constEnd(); ++pointIt) {
if (pointIt.value().toPoint() == point) {
- m_startSystemResizeInfo.window = window;
- m_startSystemResizeInfo.deviceid = devIt.key();
- m_startSystemResizeInfo.pointid = pointIt.key();
- m_startSystemResizeInfo.corner = corner;
+ m_startSystemMoveResizeInfo.window = window;
+ m_startSystemMoveResizeInfo.deviceid = devIt.key();
+ m_startSystemMoveResizeInfo.pointid = pointIt.key();
+ m_startSystemMoveResizeInfo.corner = corner;
return true;
}
}