summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorRomain Pokrzywka <romain.pokrzywka@gmail.com>2019-07-12 11:23:20 -0500
committerRomain Pokrzywka <romain.pokrzywka@gmail.com>2019-07-16 12:44:19 -0500
commite67b573611bef64a1cae30f0e1923dff15594cb4 (patch)
tree9c61fec19dccd70137f7dd37201ad3fbe1a62e08 /src/core
parent59cccabf1dce66304b0ed7d5e66305dd35b7f29c (diff)
Pass an accurate touchpoint ToolType to Chromium
QTouchEvent::TouchPoint's flags() specifies the tool type (pen, finger) for the touchpoint, so we can forward that information to Chromium. This allows proper touch handling in web pages that depend on the touch type property detect finger/pen touches. Change-Id: Ib6069a057249ef2776a6b315bc71c75d14c9b673 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core')
-rw-r--r--src/core/render_widget_host_view_qt.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp
index 994e3a3d6..4407e706e 100644
--- a/src/core/render_widget_host_view_qt.cpp
+++ b/src/core/render_widget_host_view_qt.cpp
@@ -237,7 +237,10 @@ public:
float GetHistoricalTouchMajor(size_t pointer_index, size_t historical_index) const override { return 0; }
float GetHistoricalX(size_t pointer_index, size_t historical_index) const override { return 0; }
float GetHistoricalY(size_t pointer_index, size_t historical_index) const override { return 0; }
- ToolType GetToolType(size_t pointer_index) const override { return ui::MotionEvent::ToolType::FINGER; }
+ ToolType GetToolType(size_t pointer_index) const override {
+ return (touchPoints.at(pointer_index).flags() & QTouchEvent::TouchPoint::InfoFlag::Pen) ? ui::MotionEvent::ToolType::STYLUS
+ : ui::MotionEvent::ToolType::FINGER;
+ }
int GetButtonState() const override { return 0; }
private: