From 7c3c3f32311d6be799c5d9371f56f90c4dd70689 Mon Sep 17 00:00:00 2001 From: henil Date: Sat, 16 Jan 2021 15:23:32 +0530 Subject: [PATCH 1/3] Add metadata to Cargo.toml for building deb packages --- Cargo.toml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Cargo.toml b/Cargo.toml index ef2c47ea..d499c8f0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -40,3 +40,18 @@ structopt = "0.3" [profile.release] lto = true + +[package.metadata.deb] +assets = [ + # TODO? + # ["assets/man/mosaic.1", "usr/share/man/man1/mosaic.1", "644"], + ["target/release/mosaic", "usr/bin/mosaic", "755"], + ["LICENSE.md", "usr/share/doc/mosaic/", "644"], + ["GOVERNANCE.md", "usr/share/doc/mosaic/", "644"], + ["README.md", "usr/share/doc/mosaic/README", "644"], + ["assets/layouts/*", "/usr/share/mosaic/layouts/", "644"], + ["assets/plugins/*", "/usr/share/mosaic/plugins/", "644"], + ["assets/completions/mosaic.bash", "usr/share/bash-completion/completions/mosaic.bash", "644"], + ["assets/completions/mosaic.fish", "usr/share/fish/vendor_completions.d/mosaic.fish", "644"], + ["assets/completions/_mosaic", "usr/share/zsh/vendor-completions/_mosaic", "644"], +] From 15b92262b77df234da447e40d9d603f28d9b204b Mon Sep 17 00:00:00 2001 From: Aram Drevekenin Date: Fri, 22 Jan 2021 10:24:34 +0100 Subject: [PATCH 2/3] fix(compatibility): properly erase previous state before switching grids (#152) * fix(compatibility): properly erase previous state before switching grids * style(fmt): rustfmt --- src/panes/grid.rs | 4 ++-- src/panes/terminal_pane.rs | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/panes/grid.rs b/src/panes/grid.rs index 90e471e5..062b5c3a 100644 --- a/src/panes/grid.rs +++ b/src/panes/grid.rs @@ -143,8 +143,8 @@ pub struct Grid { lines_below: Vec, cursor: Cursor, scroll_region: Option<(usize, usize)>, - width: usize, - height: usize, + pub width: usize, + pub height: usize, } impl Debug for Grid { diff --git a/src/panes/terminal_pane.rs b/src/panes/terminal_pane.rs index 466f5b65..853ae064 100644 --- a/src/panes/terminal_pane.rs +++ b/src/panes/terminal_pane.rs @@ -47,6 +47,7 @@ pub struct TerminalPane { pub position_and_size_override: Option, pub cursor_key_mode: bool, // DECCKM - when set, cursor keys should send ANSI direction codes (eg. "OD") instead of the arrow keys (eg. "") pending_styles: CharacterStyles, + clear_viewport_before_rendering: bool, } impl Pane for TerminalPane { @@ -187,6 +188,22 @@ impl Pane for TerminalPane { let buffer_lines = &self.read_buffer_as_lines(); let display_cols = self.get_columns(); let mut character_styles = CharacterStyles::new(); + if self.clear_viewport_before_rendering { + for line_index in 0..self.grid.height { + let x = self.get_x(); + let y = self.get_y(); + vte_output = format!( + "{}\u{1b}[{};{}H\u{1b}[m", + vte_output, + y + line_index + 1, + x + 1 + ); // goto row/col and reset styles + for _col_index in 0..self.grid.width { + vte_output.push(EMPTY_TERMINAL_CHARACTER.character); + } + } + self.clear_viewport_before_rendering = false; + } for (row, line) in buffer_lines.iter().enumerate() { let x = self.get_x(); let y = self.get_y(); @@ -291,6 +308,7 @@ impl TerminalPane { position_and_size, position_and_size_override: None, cursor_key_mode: false, + clear_viewport_before_rendering: false, } } pub fn mark_for_rerender(&mut self) { @@ -496,6 +514,7 @@ impl vte::Perform for TerminalPane { std::mem::swap(&mut self.grid, alternative_grid); } self.alternative_grid = None; + self.clear_viewport_before_rendering = true; self.mark_for_rerender(); } Some(&25) => { @@ -532,6 +551,7 @@ impl vte::Perform for TerminalPane { let current_grid = std::mem::replace(&mut self.grid, Grid::new(rows, columns)); self.alternative_grid = Some(current_grid); + self.clear_viewport_before_rendering = true; } Some(&1) => { self.cursor_key_mode = true; From da5317274e810ce308158e7e50a5c96182dd043f Mon Sep 17 00:00:00 2001 From: henil Date: Sat, 23 Jan 2021 11:32:41 +0530 Subject: [PATCH 3/3] Add `depends` field --- Cargo.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d499c8f0..88baed1a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,12 +42,13 @@ structopt = "0.3" lto = true [package.metadata.deb] +depends = "$auto" +license-file = ["LICENSE.md", "4"] assets = [ # TODO? # ["assets/man/mosaic.1", "usr/share/man/man1/mosaic.1", "644"], ["target/release/mosaic", "usr/bin/mosaic", "755"], - ["LICENSE.md", "usr/share/doc/mosaic/", "644"], - ["GOVERNANCE.md", "usr/share/doc/mosaic/", "644"], + ["GOVERNANCE.md", "usr/share/doc/mosaic/GOVERNANCE.md", "644"], ["README.md", "usr/share/doc/mosaic/README", "644"], ["assets/layouts/*", "/usr/share/mosaic/layouts/", "644"], ["assets/plugins/*", "/usr/share/mosaic/plugins/", "644"],