T32: on Windows the right column follows herdr's focused pane: the herdr.exe nearest under the session's shell, its arguments and variables read through sysinfo, its folder found as herdr finds it there, herdr's named pipe asked as herdr names it; on every system a herdr answer that lands after the shell reported a folder is dropped
CI / platforms (ubuntu-24.04) (push) Successful in 1m11s
CI / platforms (windows-latest) (push) Successful in 1m38s
CI / macos (push) Successful in 13m4s

This commit is contained in:
ZacharyZhang-NY committed 2026-10-16 12:37:09 -04:00
1 parent 7cb2dffc45
commit d7dc1af6b9
13 files changed
+626 -218

No files matched your search

+7 -3
View File
@@ -66,6 +66,8 @@ pub struct TerminalView {
pub(super) held: HashSet<String>,
pub(super) finder: Option<Finder>,
pub(super) size: (usize, usize),
/// How many folders the program has reported.
pub(super) reports: u64,
cell: (u16, u16),
/// Focused in an active window, as the program last heard.
focused: bool,
@@ -73,7 +75,6 @@ pub struct TerminalView {
shown: bool,
_events: Task<()>,
_blink: Task<()>,
#[cfg(unix)]
_herdr: Task<()>,
_focus: [Subscription; 3],
_settings: Subscription,
@@ -113,13 +114,13 @@ impl TerminalView {
held: HashSet::new(),
finder: None,
size,
reports: 0,
cell: (8, 16),
focused: false,
blinking: false,
shown: true,
_events: Self::pump(events, cx),
_blink: Self::blink(cx),
#[cfg(unix)]
_herdr: super::herdr::follow(cx),
_settings: cx.observe_global::<SettingsStore>(|view, cx| {
view.pty
@@ -211,7 +212,10 @@ impl TerminalView {
.any(|event| matches!(event, PtyEvent::Term(Event::Wakeup)));
for event in events {
match event {
PtyEvent::Folder(folder) => cx.emit(TerminalEvent::Folder(folder)),
PtyEvent::Folder(folder) => {
self.reports += 1;
cx.emit(TerminalEvent::Folder(folder));
}
PtyEvent::Term(event) => self.term_event(event, cx),
PtyEvent::Mouse(mode) => self.mouse = mode,
}