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