fix event propagation bug