diff --git a/src/plots.jl b/src/plots.jl index bdee891a3c0664d8edfd3d6df6963387f0bfe97d..711acc66e9e8561beb250feb6cadc6ecf21f96a1 100644 --- a/src/plots.jl +++ b/src/plots.jl @@ -145,7 +145,7 @@ function SingleLarvaView(larvae::Vector{LarvaModel}, controller; editabletags::B # TODO: move the callbacks to `plot!` # callbacks - on(async_latest(getactivelarva(controller))) do id + on(getactivelarva(controller)) do id if isnothing(id) visible[] = false else @@ -184,8 +184,7 @@ function SingleLarvaView(larvae::Vector{LarvaModel}, controller; editabletags::B ) do larva, timestep, tag_lut, usertags first_timestep = larva.alignedsteps[1] last_timestep = larva.alignedsteps[end] - if (first_timestep<=timestep && - timestep<=last_timestep && + if (first_timestep <= timestep <= last_timestep && getactivelarva(controller)[] == model[].id ) step = timestep - first_timestep + 1 @@ -514,7 +513,7 @@ function DecoratedLarvae(larvae::Vector{DecoratedLarva}) @assert hovering_active[] i = current_larva[] if i == j - @warn "moving too fast?" + @warn "moving too fast? - please file an issue at https://gitlab.pasteur.fr/nyx/larvatagger.jl/-/issues" end if 0 < i i_decorated = larvae[i].decorated @@ -523,7 +522,7 @@ function DecoratedLarvae(larvae::Vector{DecoratedLarva}) else @warn begin i_id = larvae[i].larva.model.id - "larva #$(i_id)'s decorations already removed" + "Larva #$(i_id)'s decorations already removed" end end end @@ -534,7 +533,7 @@ function DecoratedLarvae(larvae::Vector{DecoratedLarva}) else @error begin j_id = larvae[j].larva.model.id - "cannot decorate invisible larva #$(j_id)" + "cannot decorate invisible larva #$(j_id) - please file an issue at https://gitlab.pasteur.fr/nyx/larvatagger.jl/-/issues" end hovered_larva.val = 0 end @@ -570,6 +569,7 @@ function Makie.plot!(plot::LarvaPlot{Tuple{DecoratedLarvae}}) if content.hovering_active[] #pos = Makie.to_world(scene, Makie.screen_relative(scene, mp)) pos = mouseposition(scene) + # both `find` and `hovered_larva` return larva indices (not IDs) larva = find(content, pos) if larva != content.hovered_larva[] content.hovered_larva[] = larva @@ -584,7 +584,7 @@ Meshes.boundingbox(larva::DecoratedLarva) = Meshes.boundingbox(larva.larva) Meshes.boundingbox(larvae::DecoratedLarvae) = Meshes.boundingbox(map(Meshes.boundingbox, larvae.larvae)) function setmouseevents!(scene, plot::DecoratedLarvae, ctrl; consume=false) - on(async_latest(events(scene).mousebutton)) do mb + on(events(scene).mousebutton) do mb consumed = consume if mb.button == Mouse.left && mb.action == Mouse.release larva_ix = plot.hovered_larva[]