mirror of
				https://github.com/jesseduffield/lazygit.git
				synced 2025-10-30 23:57:43 +02:00 
			
		
		
		
	When using the panel jump keys and the target panel is already active, switch tabs
This commit is contained in:
		| @@ -197,7 +197,7 @@ func (gui *Gui) resetHelpersAndControllers() { | ||||
| 	commandLogController := controllers.NewCommandLogController(common) | ||||
| 	confirmationController := controllers.NewConfirmationController(common) | ||||
| 	suggestionsController := controllers.NewSuggestionsController(common) | ||||
| 	jumpToSideWindowController := controllers.NewJumpToSideWindowController(common) | ||||
| 	jumpToSideWindowController := controllers.NewJumpToSideWindowController(common, gui.handleNextTab) | ||||
|  | ||||
| 	sideWindowControllerFactory := controllers.NewSideWindowControllerFactory(common) | ||||
|  | ||||
|   | ||||
| @@ -10,15 +10,18 @@ import ( | ||||
|  | ||||
| type JumpToSideWindowController struct { | ||||
| 	baseController | ||||
| 	c *ControllerCommon | ||||
| 	c           *ControllerCommon | ||||
| 	nextTabFunc func() error | ||||
| } | ||||
|  | ||||
| func NewJumpToSideWindowController( | ||||
| 	c *ControllerCommon, | ||||
| 	nextTabFunc func() error, | ||||
| ) *JumpToSideWindowController { | ||||
| 	return &JumpToSideWindowController{ | ||||
| 		baseController: baseController{}, | ||||
| 		c:              c, | ||||
| 		nextTabFunc:    nextTabFunc, | ||||
| 	} | ||||
| } | ||||
|  | ||||
| @@ -46,6 +49,10 @@ func (self *JumpToSideWindowController) GetKeybindings(opts types.KeybindingsOpt | ||||
|  | ||||
| func (self *JumpToSideWindowController) goToSideWindow(window string) func() error { | ||||
| 	return func() error { | ||||
| 		if self.c.Helpers().Window.CurrentWindow() == window { | ||||
| 			return self.nextTabFunc() | ||||
| 		} | ||||
|  | ||||
| 		context := self.c.Helpers().Window.GetContextForWindow(window) | ||||
|  | ||||
| 		return self.c.PushContext(context) | ||||
|   | ||||
| @@ -338,6 +338,7 @@ var tests = []*components.IntegrationTest{ | ||||
| 	ui.OpenLinkFailure, | ||||
| 	ui.RangeSelect, | ||||
| 	ui.SwitchTabFromMenu, | ||||
| 	ui.SwitchTabWithPanelJumpKeys, | ||||
| 	undo.UndoCheckoutAndDrop, | ||||
| 	undo.UndoDrop, | ||||
| 	worktree.AddFromBranch, | ||||
|   | ||||
							
								
								
									
										34
									
								
								pkg/integration/tests/ui/switch_tab_with_panel_jump_keys.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								pkg/integration/tests/ui/switch_tab_with_panel_jump_keys.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| package ui | ||||
|  | ||||
| import ( | ||||
| 	"github.com/jesseduffield/lazygit/pkg/config" | ||||
| 	. "github.com/jesseduffield/lazygit/pkg/integration/components" | ||||
| ) | ||||
|  | ||||
| var SwitchTabWithPanelJumpKeys = NewIntegrationTest(NewIntegrationTestArgs{ | ||||
| 	Description:  "Switch tab with the panel jump keys", | ||||
| 	ExtraCmdArgs: []string{}, | ||||
| 	Skip:         false, | ||||
| 	SetupConfig:  func(config *config.AppConfig) {}, | ||||
| 	SetupRepo: func(shell *Shell) { | ||||
| 	}, | ||||
| 	Run: func(t *TestDriver, keys config.KeybindingConfig) { | ||||
| 		t.Views().Worktrees().Focus(). | ||||
| 			Press(keys.Universal.JumpToBlock[2]) | ||||
|  | ||||
| 		t.Views().Branches().IsFocused(). | ||||
| 			Press(keys.Universal.JumpToBlock[2]) | ||||
|  | ||||
| 		t.Views().Remotes().IsFocused(). | ||||
| 			Press(keys.Universal.JumpToBlock[2]) | ||||
|  | ||||
| 		t.Views().Tags().IsFocused(). | ||||
| 			Press(keys.Universal.JumpToBlock[2]) | ||||
|  | ||||
| 		t.Views().Branches().IsFocused(). | ||||
| 			Press(keys.Universal.JumpToBlock[1]) | ||||
|  | ||||
| 		// When jumping to a panel from a different one, keep its current tab: | ||||
| 		t.Views().Worktrees().IsFocused() | ||||
| 	}, | ||||
| }) | ||||
		Reference in New Issue
	
	Block a user