aboutsummaryrefslogtreecommitdiff
path: root/src/input.rs
diff options
context:
space:
mode:
authorChristian Duerr <contact@christianduerr.com>2018-03-10 20:24:10 +0100
committerJoe Wilm <jwilm@users.noreply.github.com>2018-03-15 12:27:12 -0700
commite7a32b589f6701667bb7c0135491b6800f8716e6 (patch)
tree754efd9bf97f8fc13abc36af8722b2c2cfddd221 /src/input.rs
parentd9be2d2d88689d31d08f9218f8493635d0724860 (diff)
downloadalacritty-e7a32b589f6701667bb7c0135491b6800f8716e6.tar.gz
alacritty-e7a32b589f6701667bb7c0135491b6800f8716e6.zip
Add scrollback hotkeys
This offers a few additional hotkeys that can be used in combination with scrollback. None of these are used by default yet. This implements the following bindings: - ScrollPageUp: Scroll exactly one screen height up - ScrollPageDown: Scroll exactly one screen height down - ScrollToTop: Scroll as far up as possible - ScrollToBottom: Scroll as far down as possible This fixes #1151.
Diffstat (limited to 'src/input.rs')
-rw-r--r--src/input.rs33
1 files changed, 30 insertions, 3 deletions
diff --git a/src/input.rs b/src/input.rs
index def20b4d..96c67db6 100644
--- a/src/input.rs
+++ b/src/input.rs
@@ -65,8 +65,11 @@ pub trait ActionContext {
fn last_modifiers(&mut self) -> &mut ModifiersState;
fn change_font_size(&mut self, delta: i8);
fn reset_font_size(&mut self);
- fn scroll(&mut self, count: isize) {}
- fn reset_scroll(&mut self) {}
+ fn scroll(&mut self, count: isize);
+ fn reset_scroll(&mut self);
+ fn scroll_to_top(&mut self);
+ fn scroll_page_up(&mut self);
+ fn scroll_page_down(&mut self);
}
/// Describes a state and action to take in that state
@@ -168,6 +171,18 @@ pub enum Action {
/// Reset font size to the config value
ResetFontSize,
+ /// Scroll exactly one page up
+ ScrollPageUp,
+
+ /// Scroll exactly one page down
+ ScrollPageDown,
+
+ /// Scroll all the way to the top
+ ScrollToTop,
+
+ /// Scroll all the way to the bottom
+ ScrollToBottom,
+
/// Run given command
Command(String, Vec<String>),
@@ -233,7 +248,19 @@ impl Action {
}
Action::ResetFontSize => {
ctx.reset_font_size();
- }
+ },
+ Action::ScrollPageUp => {
+ ctx.scroll_page_up();
+ },
+ Action::ScrollPageDown => {
+ ctx.scroll_page_down();
+ },
+ Action::ScrollToTop => {
+ ctx.scroll_to_top();
+ },
+ Action::ScrollToBottom => {
+ ctx.reset_scroll();
+ },
}
}