mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-07-31 14:24:25 +03:00
better handling of scrolling for conflicted files
This commit is contained in:
@ -70,6 +70,7 @@ func (gui *Gui) selectFile(alreadySelected bool) error {
|
|||||||
if err := gui.resetOrigin(gui.getSecondaryView()); err != nil {
|
if err := gui.resetOrigin(gui.getSecondaryView()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
gui.takeOverMergeConflictScrolling()
|
||||||
}
|
}
|
||||||
|
|
||||||
if node.File != nil && node.File.HasInlineMergeConflicts {
|
if node.File != nil && node.File.HasInlineMergeConflicts {
|
||||||
|
@ -18,7 +18,7 @@ import (
|
|||||||
|
|
||||||
func (gui *Gui) handleSelectTop() error {
|
func (gui *Gui) handleSelectTop() error {
|
||||||
return gui.withMergeConflictLock(func() error {
|
return gui.withMergeConflictLock(func() error {
|
||||||
gui.takeOverScrolling()
|
gui.takeOverMergeConflictScrolling()
|
||||||
gui.State.Panels.Merging.ConflictTop = true
|
gui.State.Panels.Merging.ConflictTop = true
|
||||||
return gui.refreshMergePanel()
|
return gui.refreshMergePanel()
|
||||||
})
|
})
|
||||||
@ -26,7 +26,7 @@ func (gui *Gui) handleSelectTop() error {
|
|||||||
|
|
||||||
func (gui *Gui) handleSelectBottom() error {
|
func (gui *Gui) handleSelectBottom() error {
|
||||||
return gui.withMergeConflictLock(func() error {
|
return gui.withMergeConflictLock(func() error {
|
||||||
gui.takeOverScrolling()
|
gui.takeOverMergeConflictScrolling()
|
||||||
gui.State.Panels.Merging.ConflictTop = false
|
gui.State.Panels.Merging.ConflictTop = false
|
||||||
return gui.refreshMergePanel()
|
return gui.refreshMergePanel()
|
||||||
})
|
})
|
||||||
@ -34,7 +34,7 @@ func (gui *Gui) handleSelectBottom() error {
|
|||||||
|
|
||||||
func (gui *Gui) handleSelectNextConflict() error {
|
func (gui *Gui) handleSelectNextConflict() error {
|
||||||
return gui.withMergeConflictLock(func() error {
|
return gui.withMergeConflictLock(func() error {
|
||||||
gui.takeOverScrolling()
|
gui.takeOverMergeConflictScrolling()
|
||||||
if gui.State.Panels.Merging.ConflictIndex >= len(gui.State.Panels.Merging.Conflicts)-1 {
|
if gui.State.Panels.Merging.ConflictIndex >= len(gui.State.Panels.Merging.Conflicts)-1 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -45,7 +45,7 @@ func (gui *Gui) handleSelectNextConflict() error {
|
|||||||
|
|
||||||
func (gui *Gui) handleSelectPrevConflict() error {
|
func (gui *Gui) handleSelectPrevConflict() error {
|
||||||
return gui.withMergeConflictLock(func() error {
|
return gui.withMergeConflictLock(func() error {
|
||||||
gui.takeOverScrolling()
|
gui.takeOverMergeConflictScrolling()
|
||||||
if gui.State.Panels.Merging.ConflictIndex <= 0 {
|
if gui.State.Panels.Merging.ConflictIndex <= 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -90,7 +90,7 @@ func (gui *Gui) handlePickHunk() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
gui.takeOverScrolling()
|
gui.takeOverMergeConflictScrolling()
|
||||||
|
|
||||||
if err := gui.pushFileSnapshot(); err != nil {
|
if err := gui.pushFileSnapshot(); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -122,7 +122,7 @@ func (gui *Gui) handlePickBothHunks() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
gui.takeOverScrolling()
|
gui.takeOverMergeConflictScrolling()
|
||||||
|
|
||||||
if err := gui.pushFileSnapshot(); err != nil {
|
if err := gui.pushFileSnapshot(); err != nil {
|
||||||
return err
|
return err
|
||||||
@ -261,7 +261,7 @@ func (gui *Gui) getMergingOptions() map[string]string {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (gui *Gui) handleEscapeMerge() error {
|
func (gui *Gui) handleEscapeMerge() error {
|
||||||
gui.takeOverScrolling()
|
gui.takeOverMergeConflictScrolling()
|
||||||
|
|
||||||
gui.State.Panels.Merging.EditHistory = stack.New()
|
gui.State.Panels.Merging.EditHistory = stack.New()
|
||||||
if err := gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{FILES}}); err != nil {
|
if err := gui.refreshSidePanels(refreshOptions{scope: []RefreshableView{FILES}}); err != nil {
|
||||||
@ -296,7 +296,7 @@ func (gui *Gui) handleCompleteMerge() error {
|
|||||||
|
|
||||||
// promptToContinueRebase asks the user if they want to continue the rebase/merge that's in progress
|
// promptToContinueRebase asks the user if they want to continue the rebase/merge that's in progress
|
||||||
func (gui *Gui) promptToContinueRebase() error {
|
func (gui *Gui) promptToContinueRebase() error {
|
||||||
gui.takeOverScrolling()
|
gui.takeOverMergeConflictScrolling()
|
||||||
|
|
||||||
return gui.ask(askOpts{
|
return gui.ask(askOpts{
|
||||||
title: "continue",
|
title: "continue",
|
||||||
@ -317,7 +317,7 @@ func (gui *Gui) promptToContinueRebase() error {
|
|||||||
|
|
||||||
func (gui *Gui) canScrollMergePanel() bool {
|
func (gui *Gui) canScrollMergePanel() bool {
|
||||||
currentViewName := gui.currentViewName()
|
currentViewName := gui.currentViewName()
|
||||||
if currentViewName != "main" {
|
if currentViewName != "main" && currentViewName != "files" {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -336,6 +336,6 @@ func (gui *Gui) withMergeConflictLock(f func() error) error {
|
|||||||
return f()
|
return f()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (gui *Gui) takeOverScrolling() {
|
func (gui *Gui) takeOverMergeConflictScrolling() {
|
||||||
gui.State.Panels.Merging.UserScrolling = false
|
gui.State.Panels.Merging.UserScrolling = false
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user