Selection fails when shared datasource

I am building a scientific dashboard, which is composed by two scatter plots that share the same dataframe. Panel widgets are used as well to change color, etc. I am trying to add a new functionality: an option to download a dataframe whose rows correspond to the selected points (box or lasso) in any of the scatter plots. The problem arises when I set shared_datasource=True. The code below illustrates the problem, although it is a much simpler version.

df = pd.DataFrame(np.random.rand(100,3), columns=['a','b','c'])
scatter1 = hv.Scatter(data=df, kdims=['a', 'b']).opts(tools=['lasso_select', 'help'])
scatter2 = hv.Scatter(data=df, kdims=['a', 'c']).opts(tools=['lasso_select', 'help'])
layout = (scatter1 + scatter2).cols(2)
layout.opts(opts.Layout(shared_axes=True, shared_datasource=True))

Then I set sel = hv.streams.Selection1D(source=layout) (I’ve tried scatter1 and scatter2 as sources also). However, sel.contents always returns an empty index {'index': []}. If I set shared_datasource=False, it works, but then the cross selection does’t work any more. Could someone help me with this issue?

Additional info: I don’t need to watch when the selection is made, just to get it when a button, for example, is pressed. That’s why I’m not using streams. Thanks!