T09: the tap holds one mouse tracking and one format as xterm does, any reset ends it; every reported button keeps its release, motion reports the first held; URLs keep combining marks; selections log start, run and end; shot hands real buttons to the view and shows its window without activating
CI / platforms (windows-latest) (push) Failing after 7s
CI / macos (push) Failing after 8m26s
CI / platforms (ubuntu-24.04) (push) Canceled after 0s

This commit is contained in:
ZacharyZhang-NY committed 2026-10-14 15:51:44 -04:00
1 parent 9f81f1f704
commit d6fa38e60b
10 files changed
+311 -206

No files matched your search

+5 -4
View File
@@ -12,6 +12,7 @@ use super::{
frame::frame,
ink::Ink,
input::{self, Copy, Paste},
mouse::MouseMode,
paint::{self, Look},
pointer::Pointer,
pty::{Events, Pty, PtyEvent, config, fit},
@@ -48,8 +49,8 @@ pub struct TerminalView {
/// The cursor's cell in the window, from the last layout.
pub(super) caret: Bounds<Pixels>,
pub(super) pointer: Pointer,
/// X10 mouse reporting, mode 9, as the tap follows it.
pub(super) x10: bool,
/// The mouse mode, as the tap follows it.
pub(super) mouse: MouseMode,
/// Keys whose press this terminal saw, so their releases may go out.
pub(super) held: HashSet<String>,
pub(super) size: (usize, usize),
@@ -83,7 +84,7 @@ impl TerminalView {
marked: None,
caret: Bounds::default(),
pointer: Pointer::default(),
x10: false,
mouse: MouseMode::default(),
held: HashSet::new(),
size,
cell: (8, 16),
@@ -155,7 +156,7 @@ impl TerminalView {
match event {
PtyEvent::Folder(folder) => cx.emit(TerminalEvent::Folder(folder)),
PtyEvent::Term(event) => self.term_event(event, cx),
PtyEvent::X10(on) => self.x10 = on,
PtyEvent::Mouse(mode) => self.mouse = mode,
}
}
cx.notify();