T10: following the current match takes one pass: a forward walk maps matches to cells, line ends are found once; the same occurrence ranks by an identical line, then one grown or cut at its end, then by line and column; a cleared or trimmed history moves no line; the title replays on CursorBlinkingChange, which a reset sends in the parser's order, synchronized updates too, and the tap's reset count is gone
This commit is contained in:
8 files changed
+185
-73
No files matched your search
+2
-10
@@ -53,12 +53,7 @@ impl<P: EventedReadWrite> io::Read for Tapped<P> {
|
||||
log::debug!("pty {pid}: a folder report after its session closed");
|
||||
}
|
||||
});
|
||||
let resets = self.mouse.resets;
|
||||
let changed = self.mouse.feed(&buf[..count]);
|
||||
if self.mouse.resets != resets && events.unbounded_send(PtyEvent::Reset).is_err() {
|
||||
log::debug!("pty {pid}: a reset after its session closed");
|
||||
}
|
||||
if let Some(mode) = changed {
|
||||
if let Some(mode) = self.mouse.feed(&buf[..count]) {
|
||||
log::info!("pty {pid}: mouse {mode:?}");
|
||||
if events.unbounded_send(PtyEvent::Mouse(mode)).is_err() {
|
||||
log::debug!("pty {pid}: a mouse mode after its session closed");
|
||||
@@ -199,7 +194,7 @@ enum Csi {
|
||||
Private,
|
||||
}
|
||||
|
||||
/// The mouse modes as xterm holds them, and resets, read as vte reads; alacritty drops 9.
|
||||
/// The mouse modes as xterm holds them, read as vte reads; alacritty drops 9.
|
||||
#[derive(Default)]
|
||||
pub(crate) struct MouseModes {
|
||||
state: Csi,
|
||||
@@ -209,8 +204,6 @@ pub(crate) struct MouseModes {
|
||||
/// Past a `:`, whose subparameters the parser's mode sets skip.
|
||||
sub: bool,
|
||||
mode: MouseMode,
|
||||
/// Full resets, `ESC c`, seen so far.
|
||||
pub resets: usize,
|
||||
}
|
||||
|
||||
impl MouseModes {
|
||||
@@ -237,7 +230,6 @@ impl MouseModes {
|
||||
(Csi::Escape, b'[') => Csi::Bracket,
|
||||
(Csi::Escape, b'c') => {
|
||||
self.mode = MouseMode::default();
|
||||
self.resets += 1;
|
||||
Csi::Ground
|
||||
}
|
||||
(Csi::Bracket, b'?') => {
|
||||
|
||||
Reference in new issue
Block a user