Map Viewer mouse events to Slide space.
There isn't much Slide can do with Window-space mouse events.
Change-Id: I36509d4aa1b2ed510b8d8739d39cf5204ad486cc
Reviewed-on: https://skia-review.googlesource.com/102149
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp
index 35b0e14..7d69567 100644
--- a/tools/viewer/Viewer.cpp
+++ b/tools/viewer/Viewer.cpp
@@ -866,9 +866,15 @@
return false;
}
- if (fSlides[fCurrentSlide]->onMouse(x, y, state, modifiers)) {
- fWindow->inval();
- return true;
+ const auto slideMatrix = this->computeMatrix();
+ SkMatrix slideInvMatrix;
+ if (slideMatrix.invert(&slideInvMatrix)) {
+ SkPoint slideMouse = SkPoint::Make(x, y);
+ slideInvMatrix.mapPoints(&slideMouse, 1);
+ if (fSlides[fCurrentSlide]->onMouse(slideMouse.x(), slideMouse.y(), state, modifiers)) {
+ fWindow->inval();
+ return true;
+ }
}
switch (state) {