Prevent change event from being invoked when a change hasn't actually been made

This fixes your todo item at the bottom. It shouldn't affect speed since nothing in the loop changed.