diff --git a/pkg/gui/controllers/helpers/window_arrangement_helper.go b/pkg/gui/controllers/helpers/window_arrangement_helper.go index 5c17083f7..0eb7cdb4a 100644 --- a/pkg/gui/controllers/helpers/window_arrangement_helper.go +++ b/pkg/gui/controllers/helpers/window_arrangement_helper.go @@ -216,6 +216,15 @@ func mainSectionChildren(args WindowArrangementArgs) []*boxlayout.Box { } } + if args.CurrentWindow == "secondary" && args.ScreenMode == types.SCREEN_FULL { + return []*boxlayout.Box{ + { + Window: "secondary", + Weight: 1, + }, + } + } + return []*boxlayout.Box{ { Window: "main", @@ -239,7 +248,7 @@ func getMidSectionWeights(args WindowArrangementArgs) (int, int) { mainSectionWeight = 5 // need to shrink side panel to make way for main panels if side-by-side } - if args.CurrentWindow == "main" { + if args.CurrentWindow == "main" || args.CurrentWindow == "secondary" { if args.ScreenMode == types.SCREEN_HALF || args.ScreenMode == types.SCREEN_FULL { sideSectionWeight = 0 } diff --git a/pkg/integration/components/view_driver.go b/pkg/integration/components/view_driver.go index 4d8e75217..e40c0c5f1 100644 --- a/pkg/integration/components/view_driver.go +++ b/pkg/integration/components/view_driver.go @@ -565,7 +565,7 @@ func (self *ViewDriver) IsVisible() *ViewDriver { func (self *ViewDriver) IsInvisible() *ViewDriver { self.t.assertWithRetries(func() (bool, string) { - return !self.getView().Visible, fmt.Sprintf("%s: Expected view to be visible, but it was not", self.context) + return !self.getView().Visible, fmt.Sprintf("%s: Expected view to be invisible, but it was not", self.context) }) return self diff --git a/pkg/integration/tests/staging/diff_change_screen_mode.go b/pkg/integration/tests/staging/diff_change_screen_mode.go new file mode 100644 index 000000000..b42439cc8 --- /dev/null +++ b/pkg/integration/tests/staging/diff_change_screen_mode.go @@ -0,0 +1,47 @@ +package staging + +import ( + "github.com/jesseduffield/lazygit/pkg/config" + . "github.com/jesseduffield/lazygit/pkg/integration/components" +) + +var DiffChangeScreenMode = NewIntegrationTest(NewIntegrationTestArgs{ + Description: "Change the staged changes screen mode", + ExtraCmdArgs: []string{}, + Skip: false, + SetupConfig: func(config *config.AppConfig) {}, + SetupRepo: func(shell *Shell) { + shell.CreateFile("file", "first line\nsecond line") + }, + Run: func(t *TestDriver, keys config.KeybindingConfig) { + t.Views().Files(). + Focus(). + PressEnter() + + t.Views().Staging(). + IsFocused(). + PressPrimaryAction(). + Title(Equals("Unstaged changes")). + Content(Contains("+second line").DoesNotContain("+first line")). + PressTab() + + t.Views().StagingSecondary(). + IsFocused(). + Title(Equals("Staged changes")). + Content(Contains("+first line").DoesNotContain("+second line")). + Press(keys.Universal.NextScreenMode). + Tap(func() { + t.Views().AppStatus(). + IsInvisible() + t.Views().Staging(). + IsVisible() + }). + Press(keys.Universal.NextScreenMode). + Tap(func() { + t.Views().AppStatus(). + IsInvisible() + t.Views().Staging(). + IsInvisible() + }) + }, +}) diff --git a/pkg/integration/tests/test_list.go b/pkg/integration/tests/test_list.go index c1e153a2b..d4ebd4026 100644 --- a/pkg/integration/tests/test_list.go +++ b/pkg/integration/tests/test_list.go @@ -245,6 +245,7 @@ var tests = []*components.IntegrationTest{ reflog.DoNotShowBranchMarkersInReflogSubcommits, reflog.Patch, reflog.Reset, + staging.DiffChangeScreenMode, staging.DiffContextChange, staging.DiscardAllChanges, staging.Search,