diff --git a/src/tabs/status.rs b/src/tabs/status.rs index 41f96be4..12507cc2 100644 --- a/src/tabs/status.rs +++ b/src/tabs/status.rs @@ -262,58 +262,58 @@ impl Component for Status { out: &mut Vec, force_all: bool, ) -> CommandBlocking { - if self.visible { + if self.visible || force_all { command_pump( out, force_all, self.components().as_slice(), ); - - { - let focus_on_diff = self.focus == Focus::Diff; - out.push(CommandInfo::new( - commands::STATUS_FOCUS_LEFT, - true, - (self.visible && focus_on_diff) || force_all, - )); - out.push(CommandInfo::new( - commands::STATUS_FOCUS_RIGHT, - self.can_focus_diff(), - (self.visible && !focus_on_diff) || force_all, - )); - } - - out.push( - CommandInfo::new( - commands::SELECT_STATUS, - true, - (self.visible && self.focus == Focus::Diff) - || force_all, - ) - .hidden(), - ); - - out.push( - CommandInfo::new( - commands::SELECT_STAGING, - true, - (self.visible && self.focus == Focus::WorkDir) - || force_all, - ) - .order(-2), - ); - - out.push( - CommandInfo::new( - commands::SELECT_UNSTAGED, - true, - (self.visible && self.focus == Focus::Stage) - || force_all, - ) - .order(-2), - ); } + { + let focus_on_diff = self.focus == Focus::Diff; + out.push(CommandInfo::new( + commands::STATUS_FOCUS_LEFT, + true, + (self.visible && focus_on_diff) || force_all, + )); + out.push(CommandInfo::new( + commands::STATUS_FOCUS_RIGHT, + self.can_focus_diff(), + (self.visible && !focus_on_diff) || force_all, + )); + } + + out.push( + CommandInfo::new( + commands::SELECT_STATUS, + true, + (self.visible && self.focus == Focus::Diff) + || force_all, + ) + .hidden(), + ); + + out.push( + CommandInfo::new( + commands::SELECT_STAGING, + true, + (self.visible && self.focus == Focus::WorkDir) + || force_all, + ) + .order(-2), + ); + + out.push( + CommandInfo::new( + commands::SELECT_UNSTAGED, + true, + (self.visible && self.focus == Focus::Stage) + || force_all, + ) + .order(-2), + ); + visibility_blocking(self) }