mirror of
https://github.com/jesseduffield/lazygit.git
synced 2025-02-05 13:24:54 +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 {
|
func (self *PatchExplorerController) HandleMouseDrag() error {
|
||||||
self.context.GetState().SelectLine(self.context.GetViewTrait().SelectedLineIdx())
|
self.context.GetState().DragSelectLine(self.context.GetViewTrait().SelectedLineIdx())
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -49,12 +49,10 @@ func NewState(diff string, selectedLineIdx int, oldState *State, log *logrus.Ent
|
|||||||
}
|
}
|
||||||
|
|
||||||
selectMode := LINE
|
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 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 {
|
if selectedLineIdx >= 0 {
|
||||||
selectMode = RANGE
|
selectMode = RANGE
|
||||||
rangeStartLineIdx = selectedLineIdx
|
rangeStartLineIdx = selectedLineIdx
|
||||||
rangeIsSticky = true
|
|
||||||
} else if oldState != nil {
|
} else if oldState != nil {
|
||||||
// if we previously had a selectMode of RANGE, we want that to now be line again
|
// if we previously had a selectMode of RANGE, we want that to now be line again
|
||||||
if oldState.selectMode == HUNK {
|
if oldState.selectMode == HUNK {
|
||||||
@ -70,7 +68,7 @@ func NewState(diff string, selectedLineIdx int, oldState *State, log *logrus.Ent
|
|||||||
selectedLineIdx: selectedLineIdx,
|
selectedLineIdx: selectedLineIdx,
|
||||||
selectMode: selectMode,
|
selectMode: selectMode,
|
||||||
rangeStartLineIdx: rangeStartLineIdx,
|
rangeStartLineIdx: rangeStartLineIdx,
|
||||||
rangeIsSticky: rangeIsSticky,
|
rangeIsSticky: false,
|
||||||
diff: diff,
|
diff: diff,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -150,7 +148,12 @@ func (s *State) SelectNewLineForRange(newSelectedLineIdx int) {
|
|||||||
s.rangeStartLineIdx = newSelectedLineIdx
|
s.rangeStartLineIdx = newSelectedLineIdx
|
||||||
|
|
||||||
s.selectMode = RANGE
|
s.selectMode = RANGE
|
||||||
s.rangeIsSticky = true
|
|
||||||
|
s.selectLineWithoutRangeCheck(newSelectedLineIdx)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *State) DragSelectLine(newSelectedLineIdx int) {
|
||||||
|
s.selectMode = RANGE
|
||||||
|
|
||||||
s.selectLineWithoutRangeCheck(newSelectedLineIdx)
|
s.selectLineWithoutRangeCheck(newSelectedLineIdx)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user