Translate QTabletEvent to QMouseEvent in canvas popup palette
ActivePublic

Authored by alvinhochun on Sep 4 2017, 5:00 PM.
diff --git a/libs/ui/brushhud/kis_round_hud_button.cpp b/libs/ui/brushhud/kis_round_hud_button.cpp
index 7597ca5a25..be92d9c873 100644
--- a/libs/ui/brushhud/kis_round_hud_button.cpp
+++ b/libs/ui/brushhud/kis_round_hud_button.cpp
@@ -115,3 +115,25 @@ void KisRoundHudButton::leaveEvent(QEvent *event)
QAbstractButton::leaveEvent(event);
}
+
+void KisRoundHudButton::tabletEvent(QTabletEvent* event) {
+ event->accept();
+ QEvent::Type evType =
+ event->type() == QEvent::TabletPress ? QEvent::MouseButtonPress :
+ event->type() == QEvent::TabletRelease ? QEvent::MouseButtonRelease :
+ QEvent::MouseMove;
+ QMouseEvent mouseEvent(evType, event->posF(), event->globalPosF(), event->button(), event->buttons(), event->modifiers());
+ mouseEvent.setTimestamp(event->timestamp());
+ switch (event->type()) {
+ case QEvent::TabletPress:
+ mousePressEvent(&mouseEvent);
+ break;
+ case QEvent::TabletMove:
+ mouseMoveEvent(&mouseEvent);
+ break;
+ case QEvent::TabletRelease:
+ mouseReleaseEvent(&mouseEvent);
+ break;
+ default: break;
+ }
+}
diff --git a/libs/ui/brushhud/kis_round_hud_button.h b/libs/ui/brushhud/kis_round_hud_button.h
index 7ff9b869d1..acec5ee5bb 100644
--- a/libs/ui/brushhud/kis_round_hud_button.h
+++ b/libs/ui/brushhud/kis_round_hud_button.h
@@ -39,6 +39,8 @@ protected:
void mouseMoveEvent(QMouseEvent *event) override;
void leaveEvent(QEvent *event) override;
+ void tabletEvent(QTabletEvent *) override;
+
private:
struct Private;
const QScopedPointer<Private> m_d;
diff --git a/libs/ui/kis_popup_palette.cpp b/libs/ui/kis_popup_palette.cpp
index 2ed57a3b43..8f48d0dbf2 100644
--- a/libs/ui/kis_popup_palette.cpp
+++ b/libs/ui/kis_popup_palette.cpp
@@ -545,7 +545,26 @@ void KisPopupPalette::slotShowTagsPopup()
}
}
-void KisPopupPalette::tabletEvent(QTabletEvent* /*event*/) {
+void KisPopupPalette::tabletEvent(QTabletEvent* event) {
+ event->accept();
+ QEvent::Type evType =
+ event->type() == QEvent::TabletPress ? QEvent::MouseButtonPress :
+ event->type() == QEvent::TabletRelease ? QEvent::MouseButtonRelease :
+ QEvent::MouseMove;
+ QMouseEvent mouseEvent(evType, event->posF(), event->globalPosF(), event->button(), event->buttons(), event->modifiers());
+ mouseEvent.setTimestamp(event->timestamp());
+ switch (event->type()) {
+ case QEvent::TabletPress:
+ mousePressEvent(&mouseEvent);
+ break;
+ case QEvent::TabletMove:
+ mouseMoveEvent(&mouseEvent);
+ break;
+ case QEvent::TabletRelease:
+ mouseReleaseEvent(&mouseEvent);
+ break;
+ default: break;
+ }
}