mouseleave event sometimes can't fire. So I detect mouseout outside the popover and activator to make it disappear. Implementation has many tricks. Sigh, life is so hard.