scroll + caret improvement