51 void updateAfterScreenChange();
52 bool supportsWarping()
const;
53 void warp(
const QPointF &pos);
63 bool areButtonsPressed()
const;
65 void setEffectsOverrideCursor(Qt::CursorShape shape);
66 void removeEffectsOverrideCursor();
67 void setWindowSelectionCursor(
const QByteArray &shape);
68 void removeWindowSelectionCursor();
70 void updatePointerConstraints();
72 void setEnableConstraints(
bool set);
76 return m_confined || m_locked;
79 bool focusUpdatesBlocked()
override;
84 void processMotionAbsolute(
const QPointF &pos, std::chrono::microseconds time,
InputDevice *device =
nullptr);
88 void processMotion(
const QPointF &delta,
const QPointF &deltaNonAccelerated, std::chrono::microseconds time,
InputDevice *device);
100 void processSwipeGestureBegin(
int fingerCount, std::chrono::microseconds time,
KWin::InputDevice *device =
nullptr);
104 void processSwipeGestureUpdate(
const QPointF &delta, std::chrono::microseconds time,
KWin::InputDevice *device =
nullptr);
108 void processSwipeGestureEnd(std::chrono::microseconds time,
KWin::InputDevice *device =
nullptr);
112 void processSwipeGestureCancelled(std::chrono::microseconds time,
KWin::InputDevice *device =
nullptr);
116 void processPinchGestureBegin(
int fingerCount, std::chrono::microseconds time,
KWin::InputDevice *device =
nullptr);
120 void processPinchGestureUpdate(qreal scale, qreal angleDelta,
const QPointF &delta, std::chrono::microseconds time,
KWin::InputDevice *device =
nullptr);
124 void processPinchGestureEnd(std::chrono::microseconds time,
KWin::InputDevice *device =
nullptr);
128 void processPinchGestureCancelled(std::chrono::microseconds time,
KWin::InputDevice *device =
nullptr);
132 void processHoldGestureBegin(
int fingerCount, std::chrono::microseconds time,
KWin::InputDevice *device =
nullptr);
136 void processHoldGestureEnd(std::chrono::microseconds time,
KWin::InputDevice *device =
nullptr);
140 void processHoldGestureCancelled(std::chrono::microseconds time,
KWin::InputDevice *device =
nullptr);
147 void processMotionInternal(
const QPointF &pos,
const QPointF &delta,
const QPointF &deltaNonAccelerated, std::chrono::microseconds time,
InputDevice *device);
150 void focusUpdate(
Window *focusOld,
Window *focusNow)
override;
152 QPointF position()
const override;
154 void updateOnStartMoveResize();
155 void updateToReset();
156 void updatePosition(
const QPointF &pos);
158 QPointF applyPointerConfinement(
const QPointF &pos)
const;
159 void disconnectConfinedPointerRegionConnection();
160 void disconnectLockedPointerAboutToBeUnboundConnection();
161 void disconnectPointerConstraintsConnection();
165 QHash<uint32_t, InputRedirection::PointerButtonState> m_buttons;
166 Qt::MouseButtons m_qtButtons;
167 QMetaObject::Connection m_focusGeometryConnection;
168 QMetaObject::Connection m_constraintsConnection;
169 QMetaObject::Connection m_constraintsActivatedConnection;
170 QMetaObject::Connection m_confinedPointerRegionConnection;
171 QMetaObject::Connection m_lockedPointerAboutToBeUnboundConnection;
172 QMetaObject::Connection m_decorationGeometryConnection;
173 QMetaObject::Connection m_decorationDestroyedConnection;
174 QMetaObject::Connection m_decorationClosedConnection;
175 bool m_confined =
false;
176 bool m_locked =
false;
177 bool m_enableConstraints =
true;
178 bool m_lastOutputWasPlaceholder =
true;
222 void reevaluteSource();
223 void updateServerCursor(
const std::variant<PointerSurfaceCursor *, QByteArray> &
cursor);
224 void updateDecoration();
225 void updateDecorationCursor();
226 void updateMoveResize();
228 void handleFocusedSurfaceChanged();
234 std::unique_ptr<ShapeCursorSource> m_effectsCursor;
235 std::unique_ptr<ShapeCursorSource> m_fallbackCursor;
236 std::unique_ptr<ShapeCursorSource> m_moveResizeCursor;
237 std::unique_ptr<ShapeCursorSource> m_windowSelectionCursor;
241 std::unique_ptr<ShapeCursorSource>
cursor;
248 std::unique_ptr<ShapeCursorSource>
shape;