Handle source selection.

Fixed how regions are stored in sessions.
Moved region selection into single function.
Not using Session.set/autorun because of animation timing issues.