# HG changeset patch # User Sebastien Jodogne # Date 1578403404 -3600 # Node ID 964c89e15e7e79a479575752bccdd79c9a31aaf2 # Parent 2a8359503f3b688624c24fa7394bcd3f16b04833 ViewportController::HandleMouseMove() returning a Boolean for invalidation diff -r 2a8359503f3b -r 964c89e15e7e Framework/Scene2DViewport/ViewportController.cpp --- a/Framework/Scene2DViewport/ViewportController.cpp Tue Jan 07 13:45:04 2020 +0100 +++ b/Framework/Scene2DViewport/ViewportController.cpp Tue Jan 07 14:23:24 2020 +0100 @@ -278,11 +278,16 @@ } } - void ViewportController::HandleMouseMove(const PointerEvent& event) + bool ViewportController::HandleMouseMove(const PointerEvent& event) { if (activeTracker_) { activeTracker_->PointerMove(event); + return true; + } + else + { + return false; } } diff -r 2a8359503f3b -r 964c89e15e7e Framework/Scene2DViewport/ViewportController.h --- a/Framework/Scene2DViewport/ViewportController.h Tue Jan 07 13:45:04 2020 +0100 +++ b/Framework/Scene2DViewport/ViewportController.h Tue Jan 07 14:23:24 2020 +0100 @@ -204,8 +204,9 @@ unsigned int viewportWidth, unsigned int viewportHeight); - // Must be expressed in canvas coordinates - void HandleMouseMove(const PointerEvent& event); + // Must be expressed in canvas coordinates. Returns "true" if the + // state has changed, so that "Invalidate()" can be called. + bool HandleMouseMove(const PointerEvent& event); // Must be expressed in canvas coordinates void HandleMouseRelease(const PointerEvent& event); diff -r 2a8359503f3b -r 964c89e15e7e Framework/Viewport/WebAssemblyViewport.cpp --- a/Framework/Viewport/WebAssemblyViewport.cpp Tue Jan 07 13:45:04 2020 +0100 +++ b/Framework/Viewport/WebAssemblyViewport.cpp Tue Jan 07 14:23:24 2020 +0100 @@ -160,8 +160,10 @@ { PointerEvent pointer; ConvertMouseEvent(pointer, *mouseEvent, *that.compositor_); - that.controller_->HandleMouseMove(pointer); - that.Invalidate(); + if (that.controller_->HandleMouseMove(pointer)) + { + that.Invalidate(); + } } return true;