mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-01-26 05:37:18 +02:00
Make range selections created with the mouse non-sticky (#3234)
- **PR Description** I prefer this because I almost never use sticky range selections, but I'm not sure everybody agrees. Also, this fixes the issue that just clicking a line in a diff (without dragging) already creates a range selection. It still does, technically, but it's no longer a problem because a non-sticky one-line range selection behaves the same as a non-range selection. See #3233.
This commit is contained in:
commit
74d937881e
@ -274,7 +274,7 @@ func (self *PatchExplorerController) HandleMouseDown() error {
|
||||
}
|
||||
|
||||
func (self *PatchExplorerController) HandleMouseDrag() error {
|
||||
self.context.GetState().SelectLine(self.context.GetViewTrait().SelectedLineIdx())
|
||||
self.context.GetState().DragSelectLine(self.context.GetViewTrait().SelectedLineIdx())
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -49,12 +49,10 @@ func NewState(diff string, selectedLineIdx int, oldState *State, log *logrus.Ent
|
||||
}
|
||||
|
||||
selectMode := LINE
|
||||
rangeIsSticky := false
|
||||
// if we have clicked from the outside to focus the main view we'll pass in a non-negative line index so that we can instantly select that line
|
||||
if selectedLineIdx >= 0 {
|
||||
selectMode = RANGE
|
||||
rangeStartLineIdx = selectedLineIdx
|
||||
rangeIsSticky = true
|
||||
} else if oldState != nil {
|
||||
// if we previously had a selectMode of RANGE, we want that to now be line again
|
||||
if oldState.selectMode == HUNK {
|
||||
@ -70,7 +68,7 @@ func NewState(diff string, selectedLineIdx int, oldState *State, log *logrus.Ent
|
||||
selectedLineIdx: selectedLineIdx,
|
||||
selectMode: selectMode,
|
||||
rangeStartLineIdx: rangeStartLineIdx,
|
||||
rangeIsSticky: rangeIsSticky,
|
||||
rangeIsSticky: false,
|
||||
diff: diff,
|
||||
}
|
||||
}
|
||||
@ -150,7 +148,12 @@ func (s *State) SelectNewLineForRange(newSelectedLineIdx int) {
|
||||
s.rangeStartLineIdx = newSelectedLineIdx
|
||||
|
||||
s.selectMode = RANGE
|
||||
s.rangeIsSticky = true
|
||||
|
||||
s.selectLineWithoutRangeCheck(newSelectedLineIdx)
|
||||
}
|
||||
|
||||
func (s *State) DragSelectLine(newSelectedLineIdx int) {
|
||||
s.selectMode = RANGE
|
||||
|
||||
s.selectLineWithoutRangeCheck(newSelectedLineIdx)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user