Region Drag Improvements

- fixed the region area dialog bug where the user could not select a region above the cursor.
- applied various refactorings to reduce code duplication and readability.