diff --git a/CHANGELOG.md b/CHANGELOG.md index 68c2158509..ecd73fac5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * crash when opening submodule ([#2895](https://github.com/gitui-org/gitui/issues/2895)) * when staging the last file in a directory, the first item after the directory is no longer skipped [[@Tillerino](https://github.com/Tillerino)] ([#2748](https://github.com/gitui-org/gitui/issues/2748)) * index-out-of-bounds panic when unstaging lines near the end of a diff ([#2953](https://github.com/gitui-org/gitui/issues/2953)) +* the command bar `more`/`less` toggle ([.]) now works inside the diff/commit viewer popups (inspect commit, compare, file history, blame), which previously swallowed the key ## [0.28.1] - 2026-03-21 diff --git a/src/popups/blame_file.rs b/src/popups/blame_file.rs index b7d1304b33..21c3daaa67 100644 --- a/src/popups/blame_file.rs +++ b/src/popups/blame_file.rs @@ -255,6 +255,12 @@ impl Component for BlameFilePopup { ) -> Result { if self.is_visible() { if let Event::Key(key) = event { + // let the command bar more/less toggle ([.]) + // bubble up to the app-level handler + if key_match(key, self.key_config.keys.cmd_bar_toggle) + { + return Ok(EventState::NotConsumed); + } if key_match(key, self.key_config.keys.exit_popup) { self.hide_stacked(false); } else if key_match(key, self.key_config.keys.move_up) diff --git a/src/popups/compare_commits.rs b/src/popups/compare_commits.rs index 5ff6ef87aa..027553679f 100644 --- a/src/popups/compare_commits.rs +++ b/src/popups/compare_commits.rs @@ -117,6 +117,11 @@ impl Component for CompareCommitsPopup { } if let Event::Key(e) = ev { + // let the command bar more/less toggle ([.]) + // bubble up to the app-level handler + if key_match(e, self.key_config.keys.cmd_bar_toggle) { + return Ok(EventState::NotConsumed); + } if key_match(e, self.key_config.keys.exit_popup) { if self.diff.focused() { self.details.focus(true); diff --git a/src/popups/file_revlog.rs b/src/popups/file_revlog.rs index 771ae857fe..7651776cc6 100644 --- a/src/popups/file_revlog.rs +++ b/src/popups/file_revlog.rs @@ -501,6 +501,12 @@ impl Component for FileRevlogPopup { } if let Event::Key(key) = event { + // let the command bar more/less toggle ([.]) + // bubble up to the app-level handler + if key_match(key, self.key_config.keys.cmd_bar_toggle) + { + return Ok(EventState::NotConsumed); + } if key_match(key, self.key_config.keys.exit_popup) { if self.diff.focused() { self.diff.focus(false); diff --git a/src/popups/inspect_commit.rs b/src/popups/inspect_commit.rs index 4acfe88e90..060086168c 100644 --- a/src/popups/inspect_commit.rs +++ b/src/popups/inspect_commit.rs @@ -154,6 +154,11 @@ impl Component for InspectCommitPopup { } if let Event::Key(e) = ev { + // let the command bar more/less toggle ([.]) + // bubble up to the app-level handler + if key_match(e, self.key_config.keys.cmd_bar_toggle) { + return Ok(EventState::NotConsumed); + } if key_match(e, self.key_config.keys.exit_popup) { if self.diff.focused() { self.details.focus(true);