Use an event filter instead of monkey patching and clean up drag and drop API