fixed multiple bugs when using showhide with desktop switching