@@ -1223,9 +1223,11 @@ impl Editor {
1223 pub fn focus(&mut self, view_id: ViewId) {
1223 pub fn focus(&mut self, view_id: ViewId) {
1224 let prev_id = std::mem::replace(&mut self.tree.focus, view_id);
1224 let prev_id = std::mem::replace(&mut self.tree.focus, view_id);
1226− // if leaving the view: mode should reset
1226+ // if leaving the view: mode should reset and the cursor should be
1227 if prev_id != view_id {
1228 if prev_id != view_id {
1228 self.mode = Mode::Normal;
1229 self.mode = Mode::Normal;
1230+ self.ensure_cursor_in_view(view_id);
@@ -1234,9 +1236,11 @@ impl Editor {
1234 self.tree.focus_next();
1236 self.tree.focus_next();
1235 let id = self.tree.focus;
1237 let id = self.tree.focus;
1237− // if leaving the view: mode should reset
1239+ // if leaving the view: mode should reset and the cursor should be
1238 if prev_id != id {
1241 if prev_id != id {
1239 self.mode = Mode::Normal;
1242 self.mode = Mode::Normal;
1243+ self.ensure_cursor_in_view(id);