| 213 | } |
| 214 | |
| 215 | void PointerInputRedirection::processMotionInternal(const QPointF &pos, const QPointF &delta, const QPointF &deltaNonAccelerated, std::chrono::microseconds time, InputDevice *device, MotionType type) |
| 216 | { |
| 217 | input()->setLastInputHandler(this); |
| 218 | if (!inited()) { |
| 219 | return; |
| 220 | } |
| 221 | if (PositionUpdateBlocker::isPositionBlocked()) { |
| 222 | PositionUpdateBlocker::schedulePosition(pos, delta, deltaNonAccelerated, time, type); |
| 223 | return; |
| 224 | } |
| 225 | |
| 226 | PositionUpdateBlocker blocker(this); |
| 227 | updatePosition(pos, time); |
| 228 | |
| 229 | PointerMotionEvent event{ |
| 230 | .device = device, |
| 231 | .position = m_pos, |
| 232 | .delta = delta, |
| 233 | .deltaUnaccelerated = deltaNonAccelerated, |
| 234 | .warp = type == MotionType::Warp, |
| 235 | .buttons = m_qtButtons, |
| 236 | .modifiers = input()->keyboardModifiers(), |
| 237 | .modifiersRelevantForShortcuts = input()->modifiersRelevantForGlobalShortcuts(), |
| 238 | .timestamp = time, |
| 239 | }; |
| 240 | |
| 241 | update(); |
| 242 | input()->processSpies(std::bind(&InputEventSpy::pointerMotion, std::placeholders::_1, &event)); |
| 243 | input()->processFilters(std::bind(&InputEventFilter::pointerMotion, std::placeholders::_1, &event)); |
| 244 | } |
| 245 | |
| 246 | void PointerInputRedirection::processButton(uint32_t button, PointerButtonState state, std::chrono::microseconds time, InputDevice *device) |
| 247 | { |
no test coverage detected