fix: ignore `preserveSelectionOnMove` when `moveOnSelect` is `true` without changing value

`preserveSelectionOnMove` doesn't get overridden when `moveOnSelect` is `true`, so that if the `moveOnSelect` value changes, `preserveSelectionOnMove` can still dictate a predictable behavior.

More fixes coming soon.