# HG changeset patch # User Sebastien Jodogne # Date 1791312326 -7200 # Node ID 32d1ef59470440798e2f5689e68372550d93fb95 # Parent a7a9457a07c68c5e78f688da961acad58e557cc7 simplified IViewportInteractor::HandleMouseHover() diff -r a7a9457a07c6 -r 32d1ef594704 Applications/Samples/Common/SimpleViewerCore.cpp --- a/Applications/Samples/Common/SimpleViewerCore.cpp Tue Oct 06 18:34:56 2026 +0200 +++ b/Applications/Samples/Common/SimpleViewerCore.cpp Tue Oct 06 20:45:26 2026 +0200 @@ -187,11 +187,10 @@ return true; } - virtual void HandleMouseHover(IViewport::ILock& viewportLock, + virtual void HandleMouseHover(Scene2D& scene, const PointerEvent& event) ORTHANC_OVERRIDE { - annotations_->SetMouseHover(event.GetMainPosition(), viewportLock.GetController().GetScene()); - viewportLock.Invalidate(); + annotations_->SetMouseHover(event.GetMainPosition(), scene); } }; diff -r a7a9457a07c6 -r 32d1ef594704 Applications/Samples/Sdl/SingleViewportSdlApplication.cpp --- a/Applications/Samples/Sdl/SingleViewportSdlApplication.cpp Tue Oct 06 18:34:56 2026 +0200 +++ b/Applications/Samples/Sdl/SingleViewportSdlApplication.cpp Tue Oct 06 20:45:26 2026 +0200 @@ -132,7 +132,7 @@ } else if (interactor->HasMouseHover()) { - interactor->HandleMouseHover(*viewportLock, p); + interactor->HandleMouseHover(viewportLock->GetController().GetScene(), p); viewportLock->Invalidate(); } break; diff -r a7a9457a07c6 -r 32d1ef594704 Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp --- a/Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp Tue Oct 06 18:34:56 2026 +0200 +++ b/Applications/StoneWebViewer/WebAssembly/StoneWebViewer.cpp Tue Oct 06 20:45:26 2026 +0200 @@ -4047,12 +4047,11 @@ return true; } - virtual void HandleMouseHover(OrthancStone::IViewport::ILock& viewportLock, + virtual void HandleMouseHover(OrthancStone::Scene2D& scene, const OrthancStone::PointerEvent& event) ORTHANC_OVERRIDE { - viewer_.stoneAnnotations_->SetMouseHover(event.GetMainPosition(), viewportLock.GetController().GetScene()); - viewer_.stoneAnnotations_->Render(viewportLock.GetController().GetScene()); - viewportLock.Invalidate(); + viewer_.stoneAnnotations_->SetMouseHover(event.GetMainPosition(), scene); + viewer_.stoneAnnotations_->Render(scene); } }; diff -r a7a9457a07c6 -r 32d1ef594704 OrthancStone/Sources/Platforms/WebAssembly/WebAssemblyViewport.cpp --- a/OrthancStone/Sources/Platforms/WebAssembly/WebAssemblyViewport.cpp Tue Oct 06 18:34:56 2026 +0200 +++ b/OrthancStone/Sources/Platforms/WebAssembly/WebAssemblyViewport.cpp Tue Oct 06 20:45:26 2026 +0200 @@ -205,9 +205,11 @@ PointerEvent pointer; ConvertMouseEvent(pointer, *mouseEvent, *that->compositor_); + that->interactor_->HandleMouseHover(that->controller_->GetScene(), pointer); + { WebAssemblyViewport::WasmLock lock(*that); - that->interactor_->HandleMouseHover(lock, pointer); + lock.Invalidate(); } } } diff -r a7a9457a07c6 -r 32d1ef594704 OrthancStone/Sources/Scene2DViewport/MeasureTool.h --- a/OrthancStone/Sources/Scene2DViewport/MeasureTool.h Tue Oct 06 18:34:56 2026 +0200 +++ b/OrthancStone/Sources/Scene2DViewport/MeasureTool.h Tue Oct 06 20:45:26 2026 +0200 @@ -29,6 +29,7 @@ #include "../Scene2D/TextSceneLayer.h" #include "../Scene2DViewport/PredeclaredTypes.h" #include "../Scene2DViewport/ViewportController.h" +#include "../Viewport/IViewport.h" #include diff -r a7a9457a07c6 -r 32d1ef594704 OrthancStone/Sources/Viewport/DefaultViewportInteractor.cpp --- a/OrthancStone/Sources/Viewport/DefaultViewportInteractor.cpp Tue Oct 06 18:34:56 2026 +0200 +++ b/OrthancStone/Sources/Viewport/DefaultViewportInteractor.cpp Tue Oct 06 20:45:26 2026 +0200 @@ -127,7 +127,7 @@ } - void DefaultViewportInteractor::HandleMouseHover(IViewport::ILock& viewportLock, + void DefaultViewportInteractor::HandleMouseHover(Scene2D& scene, const PointerEvent& event) { // "HasMouseOver()" returns "false" diff -r a7a9457a07c6 -r 32d1ef594704 OrthancStone/Sources/Viewport/DefaultViewportInteractor.h --- a/OrthancStone/Sources/Viewport/DefaultViewportInteractor.h Tue Oct 06 18:34:56 2026 +0200 +++ b/OrthancStone/Sources/Viewport/DefaultViewportInteractor.h Tue Oct 06 20:45:26 2026 +0200 @@ -105,7 +105,7 @@ return false; } - virtual void HandleMouseHover(IViewport::ILock& viewportLock, + virtual void HandleMouseHover(Scene2D& scene, const PointerEvent& event) ORTHANC_OVERRIDE; void SetGrayscaleWindowingObserverFactory(GrayscaleWindowingSceneTracker::IObserverFactory* factory /* takes ownership */); diff -r a7a9457a07c6 -r 32d1ef594704 OrthancStone/Sources/Viewport/IViewportInteractor.h --- a/OrthancStone/Sources/Viewport/IViewportInteractor.h Tue Oct 06 18:34:56 2026 +0200 +++ b/OrthancStone/Sources/Viewport/IViewportInteractor.h Tue Oct 06 20:45:26 2026 +0200 @@ -22,7 +22,6 @@ #pragma once -#include "IViewport.h" #include "../Scene2DViewport/IFlexiblePointerTracker.h" namespace OrthancStone @@ -41,7 +40,8 @@ virtual bool HasMouseHover() const = 0; - virtual void HandleMouseHover(IViewport::ILock& viewportLock, - const PointerEvent& event) = 0; // TODO Refactoring - Should return "true" to invalidate + // TODO Refactoring - Could this be called only if change in hover? + virtual void HandleMouseHover(Scene2D& scene, + const PointerEvent& event) = 0; }; }