| 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 |