stop dragging when mouse leaves body

When the user drags a widget and leaves and re-enters the body with the cursor (e.g. by leaving the window), the dragged widgets position is asynchronous to the cursor.
Dropping the widget at the current placeholder position when this happens gives a more natural drag and drop feeling.