diff options
author | Jesse Luehrs <doy@tozt.net> | 2019-11-03 10:25:56 +0000 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2019-11-03 10:25:56 +0000 |
commit | 6d8463ea1830acf98467e11a4bb676bd01fd4372 (patch) | |
tree | 9715e4970fce5ac8aa1b17f0897e9737964acbb0 | |
parent | e33eedba95fcff1e9c2118875d71bc538f3dd298 (diff) | |
download | vt100-rust-6d8463ea1830acf98467e11a4bb676bd01fd4372.tar.gz vt100-rust-6d8463ea1830acf98467e11a4bb676bd01fd4372.zip |
alternate screen can just be a normal mode now
-rw-r--r-- | src/screen.rs | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/src/screen.rs b/src/screen.rs index 35a9d91..7ccc32f 100644 --- a/src/screen.rs +++ b/src/screen.rs @@ -13,6 +13,7 @@ enum Mode { KeypadApplication, ApplicationCursor, HideCursor, + AlternateScreen, BracketedPaste, } @@ -50,7 +51,6 @@ impl Default for MouseProtocolEncoding { struct State { grid: crate::grid::Grid, alternate_grid: crate::grid::Grid, - use_alternate_grid: bool, attrs: crate::attrs::Attrs, @@ -69,7 +69,6 @@ impl State { Self { grid: crate::grid::Grid::new(size), alternate_grid: crate::grid::Grid::new(size), - use_alternate_grid: false, attrs: crate::attrs::Attrs::default(), @@ -88,7 +87,7 @@ impl State { } fn grid(&self) -> &crate::grid::Grid { - if self.use_alternate_grid { + if self.mode(Mode::AlternateScreen) { &self.alternate_grid } else { &self.grid @@ -96,7 +95,7 @@ impl State { } fn grid_mut(&mut self) -> &mut crate::grid::Grid { - if self.use_alternate_grid { + if self.mode(Mode::AlternateScreen) { &mut self.alternate_grid } else { &mut self.grid @@ -123,11 +122,11 @@ impl State { } fn enter_alternate_grid(&mut self) { - self.use_alternate_grid = true; + self.set_mode(Mode::AlternateScreen); } fn exit_alternate_grid(&mut self) { - self.use_alternate_grid = false; + self.clear_mode(Mode::AlternateScreen); } fn set_output(&mut self, output: Output) { @@ -292,7 +291,6 @@ impl State { fn ris(&mut self) { self.grid = self.new_grid(); self.alternate_grid = self.new_grid(); - self.use_alternate_grid = false; self.attrs = crate::attrs::Attrs::default(); self.modes = enumset::EnumSet::default(); self.mouse_protocol_mode = MouseProtocolMode::default(); @@ -841,7 +839,7 @@ impl Screen { } pub fn alternate_buffer_active(&self) -> bool { - self.state.use_alternate_grid + self.state.mode(Mode::AlternateScreen) } pub fn application_cursor(&self) -> bool { |