From a678ae6be65455e951908361a3094a2610d48319 Mon Sep 17 00:00:00 2001 From: wuyangfan <1102042793@qq.com> Date: Sun, 17 May 2026 17:52:10 +0800 Subject: [PATCH] fix(inspect): hide file edit hint when viewing commit message (#1645) Only surface file-tree commands (including Edit) when the file list has focus; commit-message navigation no longer shows a misleading edit shortcut in inspect commit view. Co-authored-by: Cursor --- src/components/commit_details/mod.rs | 37 ++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/src/components/commit_details/mod.rs b/src/components/commit_details/mod.rs index b8872c396b..9d21f38e56 100644 --- a/src/components/commit_details/mod.rs +++ b/src/components/commit_details/mod.rs @@ -7,7 +7,6 @@ use super::{ Component, DrawableComponent, EventState, StatusTreeComponent, }; use crate::{ - accessors, app::Environment, keys::{key_match, SharedKeyConfig}, strings, @@ -36,7 +35,13 @@ pub struct CommitDetailsComponent { } impl CommitDetailsComponent { - accessors!(self, [single_details, compare_details, file_tree]); + fn components_mut(&mut self) -> Vec<&mut dyn Component> { + if self.is_compare() { + vec![&mut self.compare_details, &mut self.file_tree] + } else { + vec![&mut self.single_details, &mut self.file_tree] + } + } /// pub fn new(env: &Environment) -> Self { @@ -185,11 +190,29 @@ impl Component for CommitDetailsComponent { force_all: bool, ) -> CommandBlocking { if self.visible || force_all { - command_pump( - out, - force_all, - self.components().as_slice(), - ); + if self.details_focused() || force_all { + if self.is_compare() { + command_pump( + out, + force_all, + &[&self.compare_details as &dyn Component], + ); + } else { + command_pump( + out, + force_all, + &[&self.single_details as &dyn Component], + ); + } + } + + if self.file_tree.focused() || force_all { + command_pump( + out, + force_all, + &[&self.file_tree as &dyn Component], + ); + } } CommandBlocking::PassingOn