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: Shawn Rutledge <shawn.rutledge@digia.com>bb10
parent
e9e66079b1
commit
f1bce3bc17
|
|
@ -331,10 +331,12 @@ XInput2DeviceData *QXcbConnection::deviceForId(int id)
|
|||
{
|
||||
XInput2DeviceData *dev = m_touchDevices[id];
|
||||
if (!dev) {
|
||||
int unused = 0;
|
||||
int nrDevices = 0;
|
||||
QTouchDevice::Capabilities caps = 0;
|
||||
dev = new XInput2DeviceData;
|
||||
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