fixed touch listener