Deactivating the drag rotation interaction in an LScene

How can I temporarily deactivate (and later reactivate) the rotation interaction (:dragrotate) for an LScene? The deactivate_interaction! and activate_interaction! methods seem only to be defined on Axis and Axis3.

Somehow :dragrotate is being registered in the first place (I guess it must be in initialize_block!(ax::Axis3) since that’s the only place it’s called with :dragrotate), but I can’t see how to access the Axis3 that underlies the LScene in order to call deactivate_interaction!(::Axis3, ::Symbol).

This should work with the default camera

cc = cameracontrols(lscene.scene)
cc.attributes[:rotation_button][] = false

Thanks - yeah I subsequently figured out that the interactions for LScene don’t seem to use the registration API that is used elsewhere. It’s not clear to me why that is but I think I can move forward for now.

Also after some more digging I see that the existing interaction that’s set up in add_rotation! is using the Observables.on(f, camera::Camera, observables::AbstractObservable...) method that I wasn’t aware of before. So it looks like disconnect!(c::Camera) can be used to remove all the camera callbacks - though I’m not sure how one would selectively remove just the relevant ones, and it looks like there are some callbacks in the steering_nodes that definitely shouldn’t be removed. For example, one of them seems to fire when the window size is changed and without it the rendered scene ends up getting squished with a resize.