Safely end drag if the source data device gets destroyed
We cannot end a drag after the destroyed() signal for the source data device is emitted because DataDeviceInterface and its d pointer are gone by that time.
We cannot end a drag after the destroyed() signal for the source data device is emitted because DataDeviceInterface and its d pointer are gone by that time.