| Absolute File Name: | /home/qt/qt5_coco/qt5/qtbase/src/platformsupport/input/evdevmouse/qevdevmousehandler.cpp |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||||||||||||||
| 2 | - | |||||||||||||||||||||||||
| 3 | - | |||||||||||||||||||||||||
| 4 | - | |||||||||||||||||||||||||
| 5 | - | |||||||||||||||||||||||||
| 6 | - | |||||||||||||||||||||||||
| 7 | - | |||||||||||||||||||||||||
| 8 | - | |||||||||||||||||||||||||
| 9 | - | |||||||||||||||||||||||||
| 10 | const QLoggingCategory &qLcEvdevMouse() { static const QLoggingCategory category("qt.qpa.input"); return never executed: category;return category;never executed: }return category; | 0 | ||||||||||||||||||||||||
| 11 | - | |||||||||||||||||||||||||
| 12 | QEvdevMouseHandler *QEvdevMouseHandler::create(const QString &device, const QString &specification) | - | ||||||||||||||||||||||||
| 13 | { | - | ||||||||||||||||||||||||
| 14 | for (bool qt_category_enabled = qLcEvdevMouse().isDebugEnabled(); qt_category_enabled
never executed: QMessageLogger(__FILE__, 61, __PRETTY_FUNCTION__, qLcEvdevMouse().categoryName()).debug() << "create mouse handler for" << device << specification; | 0 | ||||||||||||||||||||||||
| 15 | - | |||||||||||||||||||||||||
| 16 | bool compression = true; | - | ||||||||||||||||||||||||
| 17 | int jitterLimit = 0; | - | ||||||||||||||||||||||||
| 18 | int grab = 0; | - | ||||||||||||||||||||||||
| 19 | bool abs = false; | - | ||||||||||||||||||||||||
| 20 | - | |||||||||||||||||||||||||
| 21 | QStringList args = specification.split(QLatin1Char(':')); | - | ||||||||||||||||||||||||
| 22 | for (QForeachContainer<typename QtPrivate::remove_reference<decltype(args)>::type> _container_((args)); _container_.control && _container_.i != _container_.e; ++_container_.i, _container_.control ^= 1) for (const QString &arg = *_container_.i; _container_.control; _container_.control = 0) { | - | ||||||||||||||||||||||||
| 23 | if (arg == QLatin1String("nocompress")
| 0 | ||||||||||||||||||||||||
| 24 | compression = false; never executed: compression = false; | 0 | ||||||||||||||||||||||||
| 25 | else if (arg.startsWith(QLatin1String("dejitter="))
| 0 | ||||||||||||||||||||||||
| 26 | jitterLimit = arg.mid(9).toInt(); never executed: jitterLimit = arg.mid(9).toInt(); | 0 | ||||||||||||||||||||||||
| 27 | else if (arg.startsWith(QLatin1String("grab="))
| 0 | ||||||||||||||||||||||||
| 28 | grab = arg.mid(5).toInt(); never executed: grab = arg.mid(5).toInt(); | 0 | ||||||||||||||||||||||||
| 29 | else if (arg == QLatin1String("abs")
| 0 | ||||||||||||||||||||||||
| 30 | abs = true; never executed: abs = true; | 0 | ||||||||||||||||||||||||
| 31 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 32 | - | |||||||||||||||||||||||||
| 33 | int fd; | - | ||||||||||||||||||||||||
| 34 | fd = qt_safe_open(device.toLocal8Bit().constData(), 00 | 04000, 0); | - | ||||||||||||||||||||||||
| 35 | if (fd >= 0
| 0 | ||||||||||||||||||||||||
| 36 | ::ioctl(fd, (((1U) << (((0 +8)+8)+14)) | ((('E')) << (0 +8)) | (((0x90)) << 0) | ((((sizeof(int)))) << ((0 +8)+8))), grab); | - | ||||||||||||||||||||||||
| 37 | return never executed: new QEvdevMouseHandler(device, fd, abs, compression, jitterLimit);return new QEvdevMouseHandler(device, fd, abs, compression, jitterLimit);never executed: return new QEvdevMouseHandler(device, fd, abs, compression, jitterLimit); | 0 | ||||||||||||||||||||||||
| 38 | } else { | - | ||||||||||||||||||||||||
| 39 | qErrnoWarning((*__errno_location ()), "Cannot open mouse input device %s", QString(device).toLocal8Bit().constData()); | - | ||||||||||||||||||||||||
| 40 | return never executed: 0;return 0;never executed: return 0; | 0 | ||||||||||||||||||||||||
| 41 | } | - | ||||||||||||||||||||||||
| 42 | } | - | ||||||||||||||||||||||||
| 43 | - | |||||||||||||||||||||||||
| 44 | QEvdevMouseHandler::QEvdevMouseHandler(const QString &device, int fd, bool abs, bool compression, int jitterLimit) | - | ||||||||||||||||||||||||
| 45 | : m_device(device), m_fd(fd), m_notify(0), m_x(0), m_y(0), m_prevx(0), m_prevy(0), | - | ||||||||||||||||||||||||
| 46 | m_abs(abs), m_compression(compression), m_buttons(0), m_prevInvalid(true) | - | ||||||||||||||||||||||||
| 47 | { | - | ||||||||||||||||||||||||
| 48 | setObjectName(QLatin1String("Evdev Mouse Handler")); | - | ||||||||||||||||||||||||
| 49 | - | |||||||||||||||||||||||||
| 50 | m_jitterLimitSquared = jitterLimit * jitterLimit; | - | ||||||||||||||||||||||||
| 51 | - | |||||||||||||||||||||||||
| 52 | - | |||||||||||||||||||||||||
| 53 | - | |||||||||||||||||||||||||
| 54 | - | |||||||||||||||||||||||||
| 55 | - | |||||||||||||||||||||||||
| 56 | - | |||||||||||||||||||||||||
| 57 | if (m_abs
| 0 | ||||||||||||||||||||||||
| 58 | m_abs = getHardwareMaximum(); never executed: m_abs = getHardwareMaximum(); | 0 | ||||||||||||||||||||||||
| 59 | - | |||||||||||||||||||||||||
| 60 | - | |||||||||||||||||||||||||
| 61 | m_notify = new QSocketNotifier(m_fd, QSocketNotifier::Read, this); | - | ||||||||||||||||||||||||
| 62 | connect(m_notify, qFlagLocation("2""activated(int)" "\0" __FILE__ ":" "109"), this, qFlagLocation("1""readMouseData()" "\0" __FILE__ ":" "109")); | - | ||||||||||||||||||||||||
| 63 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 64 | - | |||||||||||||||||||||||||
| 65 | QEvdevMouseHandler::~QEvdevMouseHandler() | - | ||||||||||||||||||||||||
| 66 | { | - | ||||||||||||||||||||||||
| 67 | if (m_fd >= 0
| 0 | ||||||||||||||||||||||||
| 68 | qt_safe_close(m_fd); never executed: qt_safe_close(m_fd); | 0 | ||||||||||||||||||||||||
| 69 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 70 | - | |||||||||||||||||||||||||
| 71 | - | |||||||||||||||||||||||||
| 72 | - | |||||||||||||||||||||||||
| 73 | bool QEvdevMouseHandler::getHardwareMaximum() | - | ||||||||||||||||||||||||
| 74 | { | - | ||||||||||||||||||||||||
| 75 | unsigned char absFeatures[(0x3f / 8) + 1]; | - | ||||||||||||||||||||||||
| 76 | memset(absFeatures, '\0', sizeof (absFeatures)); | - | ||||||||||||||||||||||||
| 77 | - | |||||||||||||||||||||||||
| 78 | - | |||||||||||||||||||||||||
| 79 | if (ioctl(m_fd, (((2U) << (((0 +8)+8)+14)) | (('E') << (0 +8)) | ((0x20 + (0x03)) << 0) | ((sizeof (absFeatures)) << ((0 +8)+8))), absFeatures) == -1
| 0 | ||||||||||||||||||||||||
| 80 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||
| 81 | - | |||||||||||||||||||||||||
| 82 | if ((
| 0 | ||||||||||||||||||||||||
| 83 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||
| 84 | - | |||||||||||||||||||||||||
| 85 | - | |||||||||||||||||||||||||
| 86 | struct input_absinfo absInfo; | - | ||||||||||||||||||||||||
| 87 | if (ioctl(m_fd, (((2U) << (((0 +8)+8)+14)) | ((('E')) << (0 +8)) | (((0x40 + (0x00))) << 0) | ((((sizeof(struct input_absinfo)))) << ((0 +8)+8))), &absInfo) == -1
| 0 | ||||||||||||||||||||||||
| 88 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||
| 89 | - | |||||||||||||||||||||||||
| 90 | m_hardwareWidth = absInfo.maximum - absInfo.minimum; | - | ||||||||||||||||||||||||
| 91 | - | |||||||||||||||||||||||||
| 92 | if (ioctl(m_fd, (((2U) << (((0 +8)+8)+14)) | ((('E')) << (0 +8)) | (((0x40 + (0x01))) << 0) | ((((sizeof(struct input_absinfo)))) << ((0 +8)+8))), &absInfo) == -1
| 0 | ||||||||||||||||||||||||
| 93 | return never executed: false;return false;never executed: return false; | 0 | ||||||||||||||||||||||||
| 94 | - | |||||||||||||||||||||||||
| 95 | m_hardwareHeight = absInfo.maximum - absInfo.minimum; | - | ||||||||||||||||||||||||
| 96 | - | |||||||||||||||||||||||||
| 97 | QScreen *primaryScreen = QGuiApplication::primaryScreen(); | - | ||||||||||||||||||||||||
| 98 | QRect g = QHighDpi::toNativePixels(primaryScreen->virtualGeometry(), primaryScreen); | - | ||||||||||||||||||||||||
| 99 | m_hardwareScalerX = static_cast<qreal>(m_hardwareWidth) / (g.right() - g.left()); | - | ||||||||||||||||||||||||
| 100 | m_hardwareScalerY = static_cast<qreal>(m_hardwareHeight) / (g.bottom() - g.top()); | - | ||||||||||||||||||||||||
| 101 | - | |||||||||||||||||||||||||
| 102 | for (bool qt_category_enabled = qLcEvdevMouse().isDebugEnabled(); qt_category_enabled
never executed: QMessageLogger(__FILE__, 149, __PRETTY_FUNCTION__, qLcEvdevMouse().categoryName()).debug() << "Absolute pointing device" << "hardware max x" << m_hardwareWidth << "hardware max y" << m_hardwareHeight << "hardware scalers x" << m_hardwareScalerX << 'y' << m_hardwareScalerY; | 0 | ||||||||||||||||||||||||
| 103 | << "hardware max x" << m_hardwareWidth never executed: QMessageLogger(__FILE__, 149, __PRETTY_FUNCTION__, qLcEvdevMouse().categoryName()).debug() << "Absolute pointing device" << "hardware max x" << m_hardwareWidth << "hardware max y" << m_hardwareHeight << "hardware scalers x" << m_hardwareScalerX << 'y' << m_hardwareScalerY; | 0 | ||||||||||||||||||||||||
| 104 | << "hardware max y" << m_hardwareHeight never executed: QMessageLogger(__FILE__, 149, __PRETTY_FUNCTION__, qLcEvdevMouse().categoryName()).debug() << "Absolute pointing device" << "hardware max x" << m_hardwareWidth << "hardware max y" << m_hardwareHeight << "hardware scalers x" << m_hardwareScalerX << 'y' << m_hardwareScalerY; | 0 | ||||||||||||||||||||||||
| 105 | << "hardware scalers x" << m_hardwareScalerX << 'y' << m_hardwareScalerY; never executed: QMessageLogger(__FILE__, 149, __PRETTY_FUNCTION__, qLcEvdevMouse().categoryName()).debug() << "Absolute pointing device" << "hardware max x" << m_hardwareWidth << "hardware max y" << m_hardwareHeight << "hardware scalers x" << m_hardwareScalerX << 'y' << m_hardwareScalerY; | 0 | ||||||||||||||||||||||||
| 106 | - | |||||||||||||||||||||||||
| 107 | return never executed: true;return true;never executed: return true; | 0 | ||||||||||||||||||||||||
| 108 | } | - | ||||||||||||||||||||||||
| 109 | - | |||||||||||||||||||||||||
| 110 | void QEvdevMouseHandler::sendMouseEvent() | - | ||||||||||||||||||||||||
| 111 | { | - | ||||||||||||||||||||||||
| 112 | int x; | - | ||||||||||||||||||||||||
| 113 | int y; | - | ||||||||||||||||||||||||
| 114 | - | |||||||||||||||||||||||||
| 115 | if (!m_abs
| 0 | ||||||||||||||||||||||||
| 116 | x = m_x - m_prevx; | - | ||||||||||||||||||||||||
| 117 | y = m_y - m_prevy; | - | ||||||||||||||||||||||||
| 118 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 119 | else { | - | ||||||||||||||||||||||||
| 120 | x = m_x / m_hardwareScalerX; | - | ||||||||||||||||||||||||
| 121 | y = m_y / m_hardwareScalerY; | - | ||||||||||||||||||||||||
| 122 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 123 | - | |||||||||||||||||||||||||
| 124 | if (m_prevInvalid
| 0 | ||||||||||||||||||||||||
| 125 | x = y = 0; | - | ||||||||||||||||||||||||
| 126 | m_prevInvalid = false; | - | ||||||||||||||||||||||||
| 127 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 128 | - | |||||||||||||||||||||||||
| 129 | handleMouseEvent(x, y, m_abs, m_buttons); | - | ||||||||||||||||||||||||
| 130 | - | |||||||||||||||||||||||||
| 131 | m_prevx = m_x; | - | ||||||||||||||||||||||||
| 132 | m_prevy = m_y; | - | ||||||||||||||||||||||||
| 133 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 134 | - | |||||||||||||||||||||||||
| 135 | void QEvdevMouseHandler::readMouseData() | - | ||||||||||||||||||||||||
| 136 | { | - | ||||||||||||||||||||||||
| 137 | struct ::input_event buffer[32]; | - | ||||||||||||||||||||||||
| 138 | int n = 0; | - | ||||||||||||||||||||||||
| 139 | bool posChanged = false, btnChanged = false; | - | ||||||||||||||||||||||||
| 140 | bool pendingMouseEvent = false; | - | ||||||||||||||||||||||||
| 141 | int eventCompressCount = 0; | - | ||||||||||||||||||||||||
| 142 | for(;;) { | - | ||||||||||||||||||||||||
| 143 | int result = qt_safe_read(m_fd, reinterpret_cast<char *>(buffer) + n, sizeof(buffer) - n); | - | ||||||||||||||||||||||||
| 144 | - | |||||||||||||||||||||||||
| 145 | if (result == 0
| 0 | ||||||||||||||||||||||||
| 146 | QMessageLogger(__FILE__, 193, __PRETTY_FUNCTION__).warning("evdevmouse: Got EOF from the input device"); | - | ||||||||||||||||||||||||
| 147 | return; never executed: return; | 0 | ||||||||||||||||||||||||
| 148 | } else if (result < 0
| 0 | ||||||||||||||||||||||||
| 149 | if ((*
| 0 | ||||||||||||||||||||||||
| 150 | qErrnoWarning((*__errno_location ()), "evdevmouse: Could not read from input device"); | - | ||||||||||||||||||||||||
| 151 | - | |||||||||||||||||||||||||
| 152 | - | |||||||||||||||||||||||||
| 153 | if ((*
| 0 | ||||||||||||||||||||||||
| 154 | delete m_notify; | - | ||||||||||||||||||||||||
| 155 | m_notify = nullptr; | - | ||||||||||||||||||||||||
| 156 | qt_safe_close(m_fd); | - | ||||||||||||||||||||||||
| 157 | m_fd = -1; | - | ||||||||||||||||||||||||
| 158 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 159 | return; never executed: return; | 0 | ||||||||||||||||||||||||
| 160 | } | - | ||||||||||||||||||||||||
| 161 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
| 162 | n += result; | - | ||||||||||||||||||||||||
| 163 | if (n % sizeof(buffer[0]) == 0
| 0 | ||||||||||||||||||||||||
| 164 | break; never executed: break; | 0 | ||||||||||||||||||||||||
| 165 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 166 | } | - | ||||||||||||||||||||||||
| 167 | - | |||||||||||||||||||||||||
| 168 | n /= sizeof(buffer[0]); | - | ||||||||||||||||||||||||
| 169 | - | |||||||||||||||||||||||||
| 170 | for (int i = 0; i < n
| 0 | ||||||||||||||||||||||||
| 171 | struct ::input_event *data = &buffer[i]; | - | ||||||||||||||||||||||||
| 172 | if (data->type == 0x03
| 0 | ||||||||||||||||||||||||
| 173 | - | |||||||||||||||||||||||||
| 174 | if (data->code == 0x00
| 0 | ||||||||||||||||||||||||
| 175 | m_x = data->value; | - | ||||||||||||||||||||||||
| 176 | posChanged = true; | - | ||||||||||||||||||||||||
| 177 | } never executed: else if (data->code == 0x01end of block
| 0 | ||||||||||||||||||||||||
| 178 | m_y = data->value; | - | ||||||||||||||||||||||||
| 179 | posChanged = true; | - | ||||||||||||||||||||||||
| 180 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 181 | } never executed: else if (data->type == 0x02end of block
| 0 | ||||||||||||||||||||||||
| 182 | if (data->code == 0x00
| 0 | ||||||||||||||||||||||||
| 183 | m_x += data->value; | - | ||||||||||||||||||||||||
| 184 | posChanged = true; | - | ||||||||||||||||||||||||
| 185 | } never executed: else if (data->code == 0x01end of block
| 0 | ||||||||||||||||||||||||
| 186 | m_y += data->value; | - | ||||||||||||||||||||||||
| 187 | posChanged = true; | - | ||||||||||||||||||||||||
| 188 | } never executed: else if (data->code == 0x08end of block
| 0 | ||||||||||||||||||||||||
| 189 | - | |||||||||||||||||||||||||
| 190 | const int delta = 120 * data->value; | - | ||||||||||||||||||||||||
| 191 | handleWheelEvent(delta, Qt::Vertical); | - | ||||||||||||||||||||||||
| 192 | } never executed: else if (data->code == 0x06end of block
| 0 | ||||||||||||||||||||||||
| 193 | - | |||||||||||||||||||||||||
| 194 | const int delta = 120 * -data->value; | - | ||||||||||||||||||||||||
| 195 | handleWheelEvent(delta, Qt::Horizontal); | - | ||||||||||||||||||||||||
| 196 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 197 | } never executed: else if (data->type == 0x01end of block
| 0 | ||||||||||||||||||||||||
| 198 | - | |||||||||||||||||||||||||
| 199 | - | |||||||||||||||||||||||||
| 200 | m_prevInvalid = true; | - | ||||||||||||||||||||||||
| 201 | } never executed: else if (data->type == 0x01end of block
| 0 | ||||||||||||||||||||||||
| 202 | Qt::MouseButton button = Qt::NoButton; | - | ||||||||||||||||||||||||
| 203 | - | |||||||||||||||||||||||||
| 204 | - | |||||||||||||||||||||||||
| 205 | switch (data->code) { | - | ||||||||||||||||||||||||
| 206 | case never executed: 0x110:case 0x110:never executed: button = Qt::LeftButton; break;case 0x110:never executed: break; | 0 | ||||||||||||||||||||||||
| 207 | case never executed: 0x111:case 0x111:never executed: button = Qt::RightButton; break;case 0x111:never executed: break; | 0 | ||||||||||||||||||||||||
| 208 | case never executed: 0x112:case 0x112:never executed: button = Qt::MiddleButton; break;case 0x112:never executed: break; | 0 | ||||||||||||||||||||||||
| 209 | case never executed: 0x113:case 0x113:never executed: button = Qt::ExtraButton1; break;case 0x113:never executed: break; | 0 | ||||||||||||||||||||||||
| 210 | case never executed: 0x114:case 0x114:never executed: button = Qt::ExtraButton2; break;case 0x114:never executed: break; | 0 | ||||||||||||||||||||||||
| 211 | case never executed: 0x115:case 0x115:never executed: button = Qt::ExtraButton3; break;case 0x115:never executed: break; | 0 | ||||||||||||||||||||||||
| 212 | case never executed: 0x116:case 0x116:never executed: button = Qt::ExtraButton4; break;case 0x116:never executed: break; | 0 | ||||||||||||||||||||||||
| 213 | case never executed: 0x117:case 0x117:never executed: button = Qt::ExtraButton5; break;case 0x117:never executed: break; | 0 | ||||||||||||||||||||||||
| 214 | case never executed: 0x118:case 0x118:never executed: button = Qt::ExtraButton6; break;case 0x118:never executed: break; | 0 | ||||||||||||||||||||||||
| 215 | case never executed: 0x119:case 0x119:never executed: button = Qt::ExtraButton7; break;case 0x119:never executed: break; | 0 | ||||||||||||||||||||||||
| 216 | case never executed: 0x11a:case 0x11a:never executed: button = Qt::ExtraButton8; break;case 0x11a:never executed: break; | 0 | ||||||||||||||||||||||||
| 217 | case never executed: 0x11b:case 0x11b:never executed: button = Qt::ExtraButton9; break;case 0x11b:never executed: break; | 0 | ||||||||||||||||||||||||
| 218 | case never executed: 0x11c:case 0x11c:never executed: button = Qt::ExtraButton10; break;case 0x11c:never executed: break; | 0 | ||||||||||||||||||||||||
| 219 | case never executed: 0x11d:case 0x11d:never executed: button = Qt::ExtraButton11; break;case 0x11d:never executed: break; | 0 | ||||||||||||||||||||||||
| 220 | case never executed: 0x11e:case 0x11e:never executed: button = Qt::ExtraButton12; break;case 0x11e:never executed: break; | 0 | ||||||||||||||||||||||||
| 221 | case never executed: 0x11f:case 0x11f:never executed: button = Qt::ExtraButton13; break;case 0x11f:never executed: break; | 0 | ||||||||||||||||||||||||
| 222 | } | - | ||||||||||||||||||||||||
| 223 | if (data->value
| 0 | ||||||||||||||||||||||||
| 224 | m_buttons |= button; never executed: m_buttons |= button; | 0 | ||||||||||||||||||||||||
| 225 | else | - | ||||||||||||||||||||||||
| 226 | m_buttons &= ~button; never executed: m_buttons &= ~button; | 0 | ||||||||||||||||||||||||
| 227 | btnChanged = true; | - | ||||||||||||||||||||||||
| 228 | } never executed: else if (data->type == 0x00end of block
| 0 | ||||||||||||||||||||||||
| 229 | if (btnChanged
| 0 | ||||||||||||||||||||||||
| 230 | btnChanged = posChanged = false; | - | ||||||||||||||||||||||||
| 231 | sendMouseEvent(); | - | ||||||||||||||||||||||||
| 232 | pendingMouseEvent = false; | - | ||||||||||||||||||||||||
| 233 | } never executed: else if (posChangedend of block
| 0 | ||||||||||||||||||||||||
| 234 | posChanged = false; | - | ||||||||||||||||||||||||
| 235 | if (m_compression
| 0 | ||||||||||||||||||||||||
| 236 | pendingMouseEvent = true; | - | ||||||||||||||||||||||||
| 237 | eventCompressCount++; | - | ||||||||||||||||||||||||
| 238 | } never executed: else {end of block | 0 | ||||||||||||||||||||||||
| 239 | sendMouseEvent(); | - | ||||||||||||||||||||||||
| 240 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 241 | } | - | ||||||||||||||||||||||||
| 242 | } never executed: else if (data->type == 0x04end of block
| 0 | ||||||||||||||||||||||||
| 243 | - | |||||||||||||||||||||||||
| 244 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
| 245 | } | - | ||||||||||||||||||||||||
| 246 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 247 | if (m_compression
| 0 | ||||||||||||||||||||||||
| 248 | int distanceSquared = (m_x - m_prevx)*(m_x - m_prevx) + (m_y - m_prevy)*(m_y - m_prevy); | - | ||||||||||||||||||||||||
| 249 | if (distanceSquared > m_jitterLimitSquared
| 0 | ||||||||||||||||||||||||
| 250 | sendMouseEvent(); never executed: sendMouseEvent(); | 0 | ||||||||||||||||||||||||
| 251 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 252 | } never executed: end of block | 0 | ||||||||||||||||||||||||
| 253 | - | |||||||||||||||||||||||||
| 254 | - | |||||||||||||||||||||||||
| Switch to Source code | Preprocessed file |