Avoid crash if querying device that has gone away
A device removed very fast after being inserted might disappear while we are still seting it up. We must therefore check if we indeed still get a matching device Task-number: QTBUG-40820 Change-Id: I4372fb1932264e5799f37cea0d016795e28ebed6 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>bb10
parent
f9de7efe60
commit
8f547c4252
|
|
@ -336,10 +336,12 @@ XInput2TouchDeviceData *QXcbConnection::touchDeviceForId(int id)
|
|||
{
|
||||
XInput2TouchDeviceData *dev = m_touchDevices[id];
|
||||
if (!dev) {
|
||||
int unused = 0;
|
||||
int nrDevices = 0;
|
||||
QTouchDevice::Capabilities caps = 0;
|
||||
dev = new XInput2TouchDeviceData;
|
||||
dev->xiDeviceInfo = XIQueryDevice(static_cast<Display *>(m_xlib_display), id, &unused);
|
||||
dev->xiDeviceInfo = XIQueryDevice(static_cast<Display *>(m_xlib_display), id, &nrDevices);
|
||||
if (nrDevices <= 0)
|
||||
return 0;
|
||||
int type = -1;
|
||||
int maxTouchPoints = 1;
|
||||
bool hasRelativeCoords = false;
|
||||
|
|
|
|||
Loading…
Reference in New Issue