Fixed bug in sliding viewport

The viewport did not recalculate view and fire the required change event when
the source was set to an array where the same indices were selected for the view.