Improved touch handling