[RFC] swap event handling fixes