hasChanged. saveState, caretState, lastCaretState, these names belong together but are named with different patterns.
For consistent naming I propose
hasStateChanged, saveState, state, lastState
given that there is only one kind of states and the class is Caret itself.