Skip to content

Commit

Permalink
more aggressive clearing, fix self-hover
Browse files Browse the repository at this point in the history
  • Loading branch information
ffreyer committed Feb 20, 2025
1 parent 3b868c6 commit 4f953dd
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 93 deletions.
1 change: 1 addition & 0 deletions CairoMakie/test/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down
115 changes: 31 additions & 84 deletions ReferenceTests/src/tests/generic_components.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down Expand Up @@ -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
Expand All @@ -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
10 changes: 1 addition & 9 deletions src/interaction/inspector.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 4f953dd

Please sign in to comment.