Calculate damage (not used yet)
This commit is contained in:
parent
4f25324929
commit
68a0a21f3a
3 changed files with 22 additions and 10 deletions
6
justfile
6
justfile
|
|
@ -46,9 +46,13 @@ check *args:
|
||||||
# Runs a clippy check with JSON message format
|
# Runs a clippy check with JSON message format
|
||||||
check-json: (check '--message-format=json')
|
check-json: (check '--message-format=json')
|
||||||
|
|
||||||
|
dev *args:
|
||||||
|
cargo fmt
|
||||||
|
just run {{args}}
|
||||||
|
|
||||||
# Run with debug logs
|
# Run with debug logs
|
||||||
run *args:
|
run *args:
|
||||||
env RUST_LOG=debug RUST_BACKTRACE=full cargo run --release {{args}}
|
env RUST_LOG=cosmic_term=debug RUST_BACKTRACE=full cargo run --release {{args}}
|
||||||
|
|
||||||
# Installs files
|
# Installs files
|
||||||
install:
|
install:
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ use alacritty_terminal::{
|
||||||
cell::Flags,
|
cell::Flags,
|
||||||
color::{self, Colors},
|
color::{self, Colors},
|
||||||
search::RegexSearch,
|
search::RegexSearch,
|
||||||
viewport_to_point, Config, TermMode,
|
viewport_to_point, Config, TermDamage, TermMode,
|
||||||
},
|
},
|
||||||
tty::{self, Options},
|
tty::{self, Options},
|
||||||
vte::ansi::{Color, NamedColor, Rgb},
|
vte::ansi::{Color, NamedColor, Rgb},
|
||||||
|
|
@ -631,7 +631,14 @@ impl Terminal {
|
||||||
let mut text = String::from(LRI);
|
let mut text = String::from(LRI);
|
||||||
let mut attrs_list = AttrsList::new(self.default_attrs);
|
let mut attrs_list = AttrsList::new(self.default_attrs);
|
||||||
{
|
{
|
||||||
let term = self.term.lock();
|
let mut term = self.term.lock();
|
||||||
|
//TODO: use damage?
|
||||||
|
match term.damage() {
|
||||||
|
TermDamage::Full => {}
|
||||||
|
TermDamage::Partial(_damage_lines) => {}
|
||||||
|
}
|
||||||
|
term.reset_damage();
|
||||||
|
|
||||||
let grid = term.grid();
|
let grid = term.grid();
|
||||||
for indexed in grid.display_iter() {
|
for indexed in grid.display_iter() {
|
||||||
if indexed.point.line != last_point.unwrap_or(indexed.point).line {
|
if indexed.point.line != last_point.unwrap_or(indexed.point).line {
|
||||||
|
|
@ -644,10 +651,7 @@ impl Terminal {
|
||||||
buffer.set_redraw(true);
|
buffer.set_redraw(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tab skip/stop is handled by alacritty_terminal
|
if buffer.lines[line_i].set_text(text.clone(), attrs_list.clone()) {
|
||||||
if buffer.lines[line_i]
|
|
||||||
.set_text(text.replace('\t', " "), attrs_list.clone())
|
|
||||||
{
|
|
||||||
buffer.set_redraw(true);
|
buffer.set_redraw(true);
|
||||||
}
|
}
|
||||||
line_i += 1;
|
line_i += 1;
|
||||||
|
|
@ -665,7 +669,11 @@ impl Terminal {
|
||||||
}
|
}
|
||||||
|
|
||||||
let start = text.len();
|
let start = text.len();
|
||||||
text.push(indexed.cell.c);
|
// Tab skip/stop is handled by alacritty_terminal
|
||||||
|
text.push(match indexed.cell.c {
|
||||||
|
'\t' => ' ',
|
||||||
|
c => c,
|
||||||
|
});
|
||||||
if let Some(zerowidth) = indexed.cell.zerowidth() {
|
if let Some(zerowidth) = indexed.cell.zerowidth() {
|
||||||
for &c in zerowidth {
|
for &c in zerowidth {
|
||||||
text.push(c);
|
text.push(c);
|
||||||
|
|
|
||||||
|
|
@ -695,8 +695,8 @@ where
|
||||||
status = Status::Captured;
|
status = Status::Captured;
|
||||||
}
|
}
|
||||||
//This is normally Ctrl+Minus, but since that
|
//This is normally Ctrl+Minus, but since that
|
||||||
//is taken by zoom, we send that code for
|
//is taken by zoom, we send that code for
|
||||||
//Ctrl+Underline instead, like xterm and
|
//Ctrl+Underline instead, like xterm and
|
||||||
//gnome-terminal
|
//gnome-terminal
|
||||||
KeyCode::Underline => {
|
KeyCode::Underline => {
|
||||||
terminal.input_scroll(b"\x1F".as_slice());
|
terminal.input_scroll(b"\x1F".as_slice());
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue