supporting more cases of simulating user gesture