Skip to content

Commit

Permalink
Ensure the cursor is visible when you move it
Browse files Browse the repository at this point in the history
  • Loading branch information
danlucraft committed Mar 13, 2010
1 parent 9111e2f commit 10cab9f
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 0 deletions.
8 changes: 8 additions & 0 deletions plugins/edit_view/lib/edit_view/actions/arrow_keys.rb
Expand Up @@ -27,6 +27,10 @@ def self.imaginary_offset_to_real(line, width, offset)
end
real_ix + offset - imaginary_ix
end

def self.ensure_cursor_in_view(edit_view)
edit_view.document.ensure_visible(edit_view.document.cursor_offset)
end
end

class ArrowLeftHandler < ArrowHandler
Expand All @@ -40,6 +44,8 @@ def self.handle(edit_view, modifiers)
else
doc.cursor_offset = move_left_offset(edit_view)
end
ArrowHandler.ensure_cursor_in_view(edit_view)
true
end

def self.move_left_offset(edit_view)
Expand Down Expand Up @@ -85,6 +91,8 @@ def self.handle(edit_view, modifiers)
else
doc.cursor_offset = move_right_offset(edit_view)
end
ArrowHandler.ensure_cursor_in_view(edit_view)
true
end

def self.move_right_offset(edit_view)
Expand Down
4 changes: 4 additions & 0 deletions plugins/edit_view/lib/edit_view/document.rb
Expand Up @@ -418,6 +418,10 @@ def biggest_visible_line
@edit_view.controller.biggest_visible_line
end

def ensure_visible(offset)
@edit_view.controller.ensure_visible(offset)
end

def num_lines_visible
biggest_visible_line - smallest_visible_line
end
Expand Down
4 changes: 4 additions & 0 deletions plugins/edit_view_swt/lib/edit_view_swt.rb
Expand Up @@ -177,6 +177,10 @@ def biggest_visible_line
@mate_text.viewer.get_bottom_index
end

def ensure_visible(offset)
@mate_text.viewer.reveal_range(offset, 1)
end

def update_grammar(new_mirror)
title = new_mirror.title
return if @mate_text.set_grammar_by_filename(title)
Expand Down

0 comments on commit 10cab9f

Please sign in to comment.