diff options
author | Christian Duerr <contact@christianduerr.com> | 2018-03-10 20:24:10 +0100 |
---|---|---|
committer | Joe Wilm <jwilm@users.noreply.github.com> | 2018-03-15 12:27:12 -0700 |
commit | e7a32b589f6701667bb7c0135491b6800f8716e6 (patch) | |
tree | 754efd9bf97f8fc13abc36af8722b2c2cfddd221 /src/grid | |
parent | d9be2d2d88689d31d08f9218f8493635d0724860 (diff) | |
download | alacritty-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/grid')
-rw-r--r-- | src/grid/mod.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/grid/mod.rs b/src/grid/mod.rs index a52c27c5..ac761adc 100644 --- a/src/grid/mod.rs +++ b/src/grid/mod.rs @@ -176,6 +176,26 @@ impl<T: Copy + Clone> Grid<T> { self.display_offset = 0; } + pub fn scroll_to_top(&mut self) { + self.display_offset = self.scroll_limit; + } + + pub fn scroll_page_up(&mut self) { + if self.display_offset + self.lines.0 >= self.scroll_limit { + self.display_offset = self.scroll_limit; + } else { + self.display_offset += self.lines.0; + } + } + + pub fn scroll_page_down(&mut self) { + if self.display_offset <= self.lines.0 { + self.display_offset = 0; + } else { + self.display_offset -= self.lines.0; + } + } + pub fn resize(&mut self, lines: index::Line, cols: index::Column) { // Check that there's actually work to do and return early if not if lines == self.lines && cols == self.cols { |