Is there a way to texture paint so that things don't get stretched/skewed?

I am attempting to cover seams by texture painting with the clone brush. As far as I can tell, the skewing occurs at two points: At the point where textures are being cloned from, and at the point where they’re being painted. In both places, what I want is for the information to be taken from the texture instead of from the viewport window. Can’t the brush wrap over the geometry instead of painting from the viewport’s perspective?