We have a problem here: there's no way for us to know whether the overlaid MouseArea did or did not accept mouse events. childMouseEventFilter acts prior the MouseArea's mousePressed() is handled, so the event is still in accepted state. As result of onPressed: mouse.accepted = false, ListItem is also getting the mouse event, but the accepted state is still true.
We could rely on mouseEvent() being caught when overlaid items do not accept mouse events, after all all accepted events are suppressed and ListItem's event handler won't be called anymore...
We have a problem here: there's no way for us to know whether the overlaid MouseArea did or did not accept mouse events. childMouseEvent Filter acts prior the MouseArea's mousePressed() is handled, so the event is still in accepted state. As result of onPressed: mouse.accepted = false, ListItem is also getting the mouse event, but the accepted state is still true.
We could rely on mouseEvent() being caught when overlaid items do not accept mouse events, after all all accepted events are suppressed and ListItem's event handler won't be called anymore...