fix: Preserve screen mode when navigating in and out of submodules#5146
Open
majiayu000 wants to merge 2 commits intojesseduffield:masterfrom
Open
fix: Preserve screen mode when navigating in and out of submodules#5146majiayu000 wants to merge 2 commits intojesseduffield:masterfrom
majiayu000 wants to merge 2 commits intojesseduffield:masterfrom
Conversation
When entering a submodule, the current screen mode is now preserved instead of being reset to the default. This makes navigation between parent repos and submodules less jarring, as the user's screen mode preference is maintained. The fix captures the current screen mode before switching to the submodule and passes it to the new repo initialization, while worktrees and regular repo switches continue to use the default behavior. Fixes jesseduffield#5127 Signed-off-by: majiayu000 <1835304752@qq.com>
This fix ensures that the current screen mode (normal, half, or full) is preserved when entering and exiting submodules. Previously, the screen mode would reset to normal when navigating into or out of a submodule, which was jarring for users who frequently switch between a submodule and its parent repo. Changes: - Modified EnterSubmodule to capture and pass the current screen mode - Added DispatchSwitchToRepoWithScreenMode method to handle screen mode preservation - Updated Escape action to preserve screen mode when exiting submodules - Added screenModeToString helper to convert screen mode enum to string Fixes jesseduffield#5127 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> Signed-off-by: majiayu000 <1835304752@qq.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes #5127 by preserving the current screen mode (normal, half, or full) when navigating in and out of submodules.
Problem
Previously, when a user changed the screen mode (by pressing
+or_) and then navigated into a submodule, the screen mode would reset to normal. Similarly, when exiting back to the parent repo, the screen mode would reset again. This was jarring for users who frequently switch between a submodule and its parent repo.Changes
EnterSubmodulein repos_helper.go: Now captures the current screen mode before entering a submodule and passes it to the newDispatchSwitchToRepoWithScreenModemethodDispatchSwitchToRepoWithScreenModemethod: New method that accepts a screen mode parameter and converts it to a string for passing toonNewReposcreenModeToStringhelper function: Converts the screen mode enum to its string representation ("normal", "half", or "full")Escapeaction in quit_actions.go: When exiting a submodule, now preserves the current screen mode by capturing it and passing it toDispatchSwitchToRepoWithScreenModeTesting
Screenshots
As shown in the original issue, the screen mode is now preserved when:
Generated with Claude Code