Add sample mouse support to Viewer

Bug: skia:6830
Change-Id: I1a6bb781465a29cec4946462e234d63c48693454
Reviewed-on: https://skia-review.googlesource.com/66543
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Jim Van Verth <jvanverth@google.com>
diff --git a/tools/viewer/Viewer.cpp b/tools/viewer/Viewer.cpp
index 85b78ba..2355d98 100644
--- a/tools/viewer/Viewer.cpp
+++ b/tools/viewer/Viewer.cpp
@@ -897,24 +897,26 @@
 }
 
 bool Viewer::onMouse(float x, float y, Window::InputState state, uint32_t modifiers) {
-    if (GestureDevice::kTouch == fGestureDevice) {
-        return false;
+    if (!fSlides[fCurrentSlide]->onMouse(x, y, state, modifiers)) {
+        if (GestureDevice::kTouch == fGestureDevice) {
+            return false;
+        }
+        switch (state) {
+            case Window::kUp_InputState: {
+                fGesture.touchEnd(nullptr);
+                break;
+            }
+            case Window::kDown_InputState: {
+                fGesture.touchBegin(nullptr, x, y);
+                break;
+            }
+            case Window::kMove_InputState: {
+                fGesture.touchMoved(nullptr, x, y);
+                break;
+            }
+        }
+        fGestureDevice = fGesture.isBeingTouched() ? GestureDevice::kMouse : GestureDevice::kNone;
     }
-    switch (state) {
-        case Window::kUp_InputState: {
-            fGesture.touchEnd(nullptr);
-            break;
-        }
-        case Window::kDown_InputState: {
-            fGesture.touchBegin(nullptr, x, y);
-            break;
-        }
-        case Window::kMove_InputState: {
-            fGesture.touchMoved(nullptr, x, y);
-            break;
-        }
-    }
-    fGestureDevice = fGesture.isBeingTouched() ? GestureDevice::kMouse : GestureDevice::kNone;
     fWindow->inval();
     return true;
 }