+ if @cursor?
+ new_cursor = @cursor
+ old_loc = cursor_to_xyh new_cursor[0], new_cursor[1]
+ new_loc = x: old_loc.x, y: old_loc.y
+ while new_loc.y >= old_loc.y
+ new_cursor = find_prev_cursor_position @tree, new_cursor[0], new_cursor[1]
+ return false unless new_cursor?
+ new_loc = cursor_to_xyh new_cursor[0], new_cursor[1]
+ if new_cursor?
+ # now we're above
+ if new_loc.x > old_loc.x
+ console.log 'fixme'
+ # TODO move left until we go up or meet/pass old_loc.x
+ # then set new_cursor to the closest
+ @move_cursor new_cursor
+ else
+ # move cursor to first position in document
+ new_cursor = find_prev_cursor_position @tree
+ if new_cursor?
+ @move_cursor new_cursor
+ break