fixed touch event handler