aboutsummaryrefslogtreecommitdiffstats
path: root/src/view.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/view.rs')
-rw-r--r--src/view.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/view.rs b/src/view.rs
index cdb2ceb..d92ad58 100644
--- a/src/view.rs
+++ b/src/view.rs
@@ -14,6 +14,7 @@ pub trait View {
fn render(&self, bk: &Bk) -> Vec<String>;
fn on_key(&self, bk: &mut Bk, kc: KeyCode);
fn on_mouse(&self, _: &mut Bk, _: MouseEvent) {}
+ fn on_resize(&self, _: &mut Bk) {}
}
// TODO render something useful?
@@ -127,6 +128,9 @@ impl Nav {
}
}
impl View for Nav {
+ fn on_resize(&self, bk: &mut Bk) {
+ self.cursor(bk);
+ }
fn on_mouse(&self, bk: &mut Bk, e: MouseEvent) {
match e {
MouseEvent::Down(_, _, row, _) => self.click(bk, row as usize),
@@ -273,6 +277,10 @@ impl View for Page {
_ => (),
}
}
+ fn on_resize(&self, bk: &mut Bk) {
+ // lazy
+ bk.line = min(bk.line, bk.chap().lines.len() - 1);
+ }
fn render(&self, bk: &Bk) -> Vec<String> {
let c = bk.chap();
let line_end = min(bk.line + bk.rows, c.lines.len());