mirror of
				https://github.com/jesseduffield/lazygit.git
				synced 2025-10-30 23:57:43 +02:00 
			
		
		
		
	Return only visible views from TopViewInWindow
Without this it's not reliably possible to ask whether a given view is visible by asking windowHelper.TopViewInWindow(context.GetWindowName()) == context.GetView() because there could be transient, invisible contexts after it in the Z order. I guess it's a bit of a coincidence that this has never been a problem so far.
This commit is contained in:
		| @@ -92,7 +92,7 @@ func (self *WindowHelper) MoveToTopOfWindow(context types.Context) { | ||||
|  | ||||
| 	topView := self.TopViewInWindow(window) | ||||
|  | ||||
| 	if view.Name() != topView.Name() { | ||||
| 	if topView != nil && view.Name() != topView.Name() { | ||||
| 		if err := self.c.GocuiGui().SetViewOnTopOf(view.Name(), topView.Name()); err != nil { | ||||
| 			self.c.Log.Error(err) | ||||
| 		} | ||||
| @@ -106,7 +106,7 @@ func (self *WindowHelper) TopViewInWindow(windowName string) *gocui.View { | ||||
| 	// The views list is ordered highest-last, so we're grabbing the last view of the window | ||||
| 	var topView *gocui.View | ||||
| 	for _, currentView := range self.c.GocuiGui().Views() { | ||||
| 		if lo.Contains(viewNamesInWindow, currentView.Name()) { | ||||
| 		if lo.Contains(viewNamesInWindow, currentView.Name()) && currentView.Visible { | ||||
| 			topView = currentView | ||||
| 		} | ||||
| 	} | ||||
|   | ||||
| @@ -39,12 +39,8 @@ func (gui *Gui) moveMainContextToTop(context types.Context) { | ||||
| 	view := context.GetView() | ||||
|  | ||||
| 	topView := gui.helpers.Window.TopViewInWindow(context.GetWindowName()) | ||||
| 	if topView == nil { | ||||
| 		gui.Log.Error("unexpected: topView is nil") | ||||
| 		return | ||||
| 	} | ||||
|  | ||||
| 	if topView != view { | ||||
| 	if topView != nil && topView != view { | ||||
| 		// We need to copy the content to avoid a flicker effect: If we're flicking | ||||
| 		// through files in the files panel, we use a different view to render the | ||||
| 		// files vs the directories, and if you select dir A, then file B, then dir | ||||
|   | ||||
		Reference in New Issue
	
	Block a user