20#include <KDecoration2/Decoration>
40 connect(
workspace(), &QObject::destroyed,
this, [
this] {
49 qreal pressure,
int xTilt,
int yTilt, qreal rotation,
bool tipDown,
51 std::chrono::microseconds time)
62 t = QEvent::TabletMove;
65 t = tipDown ? QEvent::TabletPress : QEvent::TabletRelease;
68 t = tipNear ? QEvent::TabletEnterProximity : QEvent::TabletLeaveProximity;
75 const auto button = m_tipDown ? Qt::LeftButton : Qt::NoButton;
78 const QPointingDevice *dev = QPointingDevice::primaryPointingDevice();
84 Qt::NoModifier, button, button, tabletToolId);
86 ev.setTimestamp(std::chrono::duration_cast<std::chrono::milliseconds>(time).count());
96 const TabletToolId &tabletToolId, std::chrono::microseconds time)
99 std::placeholders::_1, button, isPressed, tabletToolId, time));
101 std::placeholders::_1, button, isPressed, tabletToolId, time));
106 const TabletPadId &tabletPadId, std::chrono::microseconds time)
109 std::placeholders::_1, button, isPressed, tabletPadId, time));
111 std::placeholders::_1, button, isPressed, tabletPadId, time));
116 const TabletPadId &tabletPadId, std::chrono::microseconds time)
119 std::placeholders::_1, number, position, isFinger, tabletPadId, time));
121 std::placeholders::_1, number, position, isFinger, tabletPadId, time));
126 const TabletPadId &tabletPadId, std::chrono::microseconds time)
129 std::placeholders::_1, number, position, isFinger, tabletPadId, time));
131 std::placeholders::_1, number, position, isFinger, tabletPadId, time));
143 disconnect(m_decorationGeometryConnection);
144 m_decorationGeometryConnection = QMetaObject::Connection();
146 disconnect(m_decorationDestroyedConnection);
147 m_decorationDestroyedConnection = QMetaObject::Connection();
151 QHoverEvent event(QEvent::HoverLeave, QPointF(), QPointF());
152 QCoreApplication::instance()->sendEvent(old->decoration(), &event);
159 const auto pos = m_lastPosition - now->
window()->
pos();
160 QHoverEvent event(QEvent::HoverEnter, pos, pos);
161 QCoreApplication::instance()->sendEvent(now->decoration(), &event);
164 m_decorationGeometryConnection = connect(
171 const QPointF p = m_lastPosition -
decoration()->window()->pos();
172 QHoverEvent event(QEvent::HoverMove, p, p);
176 Qt::QueuedConnection);
182void TabletInputRedirection::focusUpdate(
Window *focusOld,
Window *focusNow)
189#include "moc_tablet_input.cpp"
void processDecorationMove(const QPointF &localPos, const QPointF &globalPos)
void frameGeometryChanged(const QRectF &oldGeometry)
void setActiveCursorOutput(Output *output)
WaylandServer * waylandServer()
InputRedirection * input()