diff --git a/CairoMakie/test/runtests.jl b/CairoMakie/test/runtests.jl index 80c96bf9f0c..7a34b6ca768 100644 --- a/CairoMakie/test/runtests.jl +++ b/CairoMakie/test/runtests.jl @@ -195,6 +195,7 @@ excludes = Set([ "MetaMesh (Sponza)", # makes little sense without per pixel depth order "Mesh with 3d volume texture", # Not implemented yet "Volume absorption", + "DataInspector", "DataInspector 2", # No DataInspector without pick/interactivity ]) functions = [:volume, :volume!, :uv_mesh] diff --git a/ReferenceTests/src/tests/generic_components.jl b/ReferenceTests/src/tests/generic_components.jl index dba9eed2698..46e4a3dd622 100644 --- a/ReferenceTests/src/tests/generic_components.jl +++ b/ReferenceTests/src/tests/generic_components.jl @@ -425,6 +425,15 @@ scene2 end +function hover_step(st, x, y) + # remove tooltip so we don't select it + e.mouseposition[] = (0, 0) + yield() + @test isempty(di.temp_plots) # verify cleanup + e.mouseposition[] = (x, y) + yield() + Makie.step!(st) +end @reference_test "DataInspector" begin scene = Scene(camera = campixel!, size = (290, 140)) @@ -454,90 +463,36 @@ end st = Makie.Stepper(scene) # Scatter - e.mouseposition[] = (20, 20) - yield() - Makie.step!(st) - + hover_step(st, 20, 20) # meshscatter - e.mouseposition[] = (90, 20) - yield() - Makie.step!(st) - - # no hover (verify cleanup, sanity check) - e.mouseposition[] = (0, 0) - yield() - @test isempty(di.temp_plots) - Makie.step!(st) - + hover_step(st, 90, 20) # lines - e.mouseposition[] = (20, 40) - yield() - Makie.step!(st) - e.mouseposition[] = (40, 30) - yield() - Makie.step!(st) - + hover_step(st, 20, 40) + hover_step(st, 40, 30) # linesegments - e.mouseposition[] = (30, 60) - yield() - Makie.step!(st) - e.mouseposition[] = (55, 50) - yield() - Makie.step!(st) - + hover_step(st, 30, 60) + hover_step(st, 55, 50) # mesh - e.mouseposition[] = (30, 100) - yield() - Makie.step!(st) - + hover_step(st, 30, 100) # surface - e.mouseposition[] = (90, 110) - yield() - Makie.step!(st) - + hover_step(st, 90, 110) # heatmap - e.mouseposition[] = (130, 20) - yield() - Makie.step!(st) - + hover_step(st, 130, 20) # image - e.mouseposition[] = (150, 90) - yield() - Makie.step!(st) - + hover_step(st, 150, 90) # barplot - e.mouseposition[] = (200, 10) - yield() - Makie.step!(st) - + hover_step(st, 200, 10) # arrows - e.mouseposition[] = (200, 35) # 2D tail - yield() - Makie.step!(st) - e.mouseposition[] = (200, 45) # 2D head - yield() - Makie.step!(st) - e.mouseposition[] = (217, 79) # 3D tail - yield() - Makie.step!(st) - e.mouseposition[] = (181, 67) # 3D head - yield() - Makie.step!(st) - + hover_step(st, 200, 35) # 2D tail + hover_step(st, 200, 45) # 2D head + hover_step(st, 217, 79) # 3D tail + hover_step(st, 181, 67) # 3D head # contourf - e.mouseposition[] = (260, 30) - yield() - Makie.step!(st) - + hover_step(st, 260, 30) # spy - e.mouseposition[] = (260, 90) - yield() - Makie.step!(st) - + hover_step(st, 260, 90) # band - e.mouseposition[] = (205, 110) - yield() - Makie.step!(st) + hover_step(st, 205, 110) st end @@ -557,18 +512,10 @@ end st = Makie.Stepper(f) - e.mouseposition[] = (90, 411) # volumeslices - yield() - Makie.step!(st) - e.mouseposition[] = (344, 388) # datashader - yield() - Makie.step!(st) - e.mouseposition[] = (329, 137) # heatmap resampler - yield() - Makie.step!(st) - e.mouseposition[] = (226, 267) # reset - yield() - Makie.step!(st) + hover_step(st, 90, 411) # volumeslices + hover_step(st, 344, 388) # datashader + hover_step(st, 329, 137) # heatmap resampler + hover_step(st, 226, 267) # reset st end \ No newline at end of file diff --git a/src/interaction/inspector.jl b/src/interaction/inspector.jl index 7b406eb5e41..0be1f514036 100644 --- a/src/interaction/inspector.jl +++ b/src/interaction/inspector.jl @@ -329,15 +329,7 @@ function on_hover(inspector) end end - if should_clear - plot = inspector.selection - if to_value(get(plot, :inspector_clear, automatic)) !== automatic - plot[:inspector_clear][](inspector, plot) - end - inspector.plot.visible[] = false - inspector.attributes.indicator_visible[] = false - inspector.plot.offset.val = inspector.attributes.offset[] - end + should_clear && clear_temporary_plots!(inspector, inspector.plot) return Consume(false) end