diff options
| author | Maxime Coste <frrrwww@gmail.com> | 2013-07-24 01:38:30 +0200 |
|---|---|---|
| committer | Maxime Coste <frrrwww@gmail.com> | 2013-07-24 01:38:30 +0200 |
| commit | 62fdacb757cee6bb4d859f49b8ca7a2e476b8379 (patch) | |
| tree | 9d70c67704d78257ba3c70dddc44560e672d8435 /src | |
| parent | 8633a37dad814ef16291cf153cf037f43399e1a7 (diff) | |
Add scroll left/right support
Diffstat (limited to 'src')
| -rw-r--r-- | src/normal.cc | 6 | ||||
| -rw-r--r-- | src/window.cc | 5 | ||||
| -rw-r--r-- | src/window.hh | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/normal.cc b/src/normal.cc index 81526b9c..4c50bc03 100644 --- a/src/normal.cc +++ b/src/normal.cc @@ -194,6 +194,12 @@ void view_commands(Context& context) case 'k': context.window().scroll(-std::max<LineCount>(1, context.numeric_param())); break; + case 'l': + context.window().scroll( std::max<CharCount>(1, context.numeric_param())); + break; + case 'h': + context.window().scroll(-std::max<CharCount>(1, context.numeric_param())); + break; } }); } diff --git a/src/window.cc b/src/window.cc index 1ab42982..72a69984 100644 --- a/src/window.cc +++ b/src/window.cc @@ -57,6 +57,11 @@ void Window::scroll(LineCount offset) m_position.line = std::max(0_line, m_position.line + offset); } +void Window::scroll(CharCount offset) +{ + m_position.column = std::max(0_char, m_position.column + offset); +} + void Window::update_display_buffer() { scroll_to_keep_cursor_visible_ifn(); diff --git a/src/window.hh b/src/window.hh index 08ee23f0..a9ea0c8c 100644 --- a/src/window.hh +++ b/src/window.hh @@ -35,6 +35,7 @@ public: void center_selection(); void display_selection_at(LineCount line); void scroll(LineCount offset); + void scroll(CharCount offset); void update_display_buffer(); DisplayCoord display_position(const BufferCoord& coord); |
