summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxime Coste <frrrwww@gmail.com>2013-07-24 01:38:30 +0200
committerMaxime Coste <frrrwww@gmail.com>2013-07-24 01:38:30 +0200
commit62fdacb757cee6bb4d859f49b8ca7a2e476b8379 (patch)
tree9d70c67704d78257ba3c70dddc44560e672d8435 /src
parent8633a37dad814ef16291cf153cf037f43399e1a7 (diff)
Add scroll left/right support
Diffstat (limited to 'src')
-rw-r--r--src/normal.cc6
-rw-r--r--src/window.cc5
-rw-r--r--src/window.hh1
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);