17#ifndef INPUTDISPATCHERFILTER_H
18#define INPUTDISPATCHERFILTER_H
27class InputDispatcherFilter :
public QObject
31 static InputDispatcherFilter *instance();
33 void registerPointer(MousePointer* pointer);
34 void unregisterPointer(MousePointer* pointer);
37 void pushedLeftBoundary(QScreen* screen, qreal amount, Qt::MouseButtons buttons);
38 void pushedRightBoundary(QScreen* screen, qreal amount, Qt::MouseButtons buttons);
39 void pushedTopBoundary(QScreen* screen, qreal amount, Qt::MouseButtons buttons);
40 void pushedTopLeftCorner(QScreen* screen, qreal amount, Qt::MouseButtons buttons);
41 void pushedTopRightCorner(QScreen* screen, qreal amount, Qt::MouseButtons buttons);
42 void pushedBottomLeftCorner(QScreen* screen, qreal amount, Qt::MouseButtons buttons);
43 void pushedBottomRightCorner(QScreen* screen, qreal amount, Qt::MouseButtons buttons);
44 void pushStopped(QScreen* screen);
47 InputDispatcherFilter(QObject* parent =
nullptr);
49 bool eventFilter(QObject *o, QEvent *e)
override;
51 QPointF adjustedPositionForMovement(
const QPointF& pt,
const QPointF& movement)
const;
52 QScreen* screenAt(
const QPointF& pt)
const;
54 MousePointer* currentPointer()
const;
57 QObject* m_inputDispatcher;
58 QSet<MousePointer*> m_pointers;