handle drag events from mouse, touch, and pointer in a method that is as light weight as possible.