Skip to content

Conversation

@stefanhaller
Copy link
Collaborator

It is possible to scroll the selection out of view using the mouse wheel; after doing this, it would sometimes scroll into view by itself again, for example when a background fetch occurred. In the files panel this would even happen every 10s with every regular files refresh.

Fix this by adding a scrollIntoView parameter to HandleFocus, which is false by default, and is only set to true from controllers that change the selection.

Fixes #5097.

@codacy-production
Copy link

codacy-production bot commented Dec 22, 2025

Coverage summary from Codacy

See diff coverage on Codacy

Coverage variation Diff coverage
Report missing for 74b12551 94.12%
Coverage variation details
Coverable lines Covered lines Coverage
Common ancestor commit (74b1255) Report Missing Report Missing Report Missing
Head commit (478d51c) 59366 51663 87.02%

Coverage variation is the difference between the coverage for the head and common ancestor commits of the pull request branch: <coverage of head commit> - <coverage of common ancestor commit>

Diff coverage details
Coverable lines Covered lines Diff coverage
Pull request (#5134) 34 32 94.12%

Diff coverage is the percentage of lines that are covered by tests out of the coverable lines that the pull request added or modified: <covered lines added or modified>/<coverable lines added or modified> * 100%

See your quality gate settings    Change summary preferences

Footnotes

  1. Codacy didn't receive coverage data for the commit, or there was an error processing the received data. Check your integration for errors and validate that your coverage setup is correct.

@stefanhaller stefanhaller force-pushed the dont-scroll-selection-into-view-on-refresh branch 2 times, most recently from ce0a1ce to 30a2cc3 Compare December 23, 2025 10:28
We want to do this whenever we switch branches; it wasn't done consistently
though. There are many different ways to switch branches, and only some of these
would reset the selection of all three panels (branches, commits, and reflog).
@stefanhaller stefanhaller force-pushed the dont-scroll-selection-into-view-on-refresh branch from 30a2cc3 to a01c9a9 Compare December 23, 2025 14:11
It is possible to scroll the selection out of view using the mouse wheel; after
doing this, it would sometimes scroll into view by itself again, for example
when a background fetch occurred. In the files panel this would even happen
every 10s with every regular files refresh.

Fix this by adding a scrollIntoView parameter to HandleFocus, which is false by
default, and is only set to true from controllers that change the selection.
…, even if it didn't change

We have this logic to avoid constantly rerendering the main view when hitting
up-arrow when you are already at the top of the list. That's good, but we do
want to scroll the selection into view if it is outside and you hit up or down,
no matter if it changed.
@stefanhaller stefanhaller force-pushed the dont-scroll-selection-into-view-on-refresh branch from a01c9a9 to 478d51c Compare December 23, 2025 14:34
@stefanhaller stefanhaller merged commit e1a8327 into master Dec 23, 2025
13 checks passed
@stefanhaller stefanhaller deleted the dont-scroll-selection-into-view-on-refresh branch December 23, 2025 14:37
stefanhaller added a commit that referenced this pull request Jan 6, 2026
… into view

This used to work in the last version, but broke with efd4298 (#5134).
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Jan 9, 2026
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [jesseduffield/lazygit](https://github.com/jesseduffield/lazygit) | minor | `v0.57.0` → `v0.58.0` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>jesseduffield/lazygit (jesseduffield/lazygit)</summary>

### [`v0.58.0`](https://github.com/jesseduffield/lazygit/releases/tag/v0.58.0)

[Compare Source](jesseduffield/lazygit@v0.57.0...v0.58.0)

<!-- Release notes generated using configuration in .github/release.yml at v0.58.0 -->

#### What's Changed

##### Enhancements 🔥

- Add keys for command log menu items by [@&#8203;PeterCardenas](https://github.com/PeterCardenas) in [#&#8203;5096](jesseduffield/lazygit#5096)
- Add Codeberg as a supported git hosting service by [@&#8203;yaadata](https://github.com/yaadata) in [#&#8203;5130](jesseduffield/lazygit#5130)
- Change keybinding of "keep" item in Merge Conflict menu back to 'k' by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5132](jesseduffield/lazygit#5132)
- Support custom keybindings in custom command menu prompts by [@&#8203;HerrNaN](https://github.com/HerrNaN) in [#&#8203;5129](jesseduffield/lazygit#5129)
- Show an error when checking out a file would overwrite local modifications by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5154](jesseduffield/lazygit#5154)

##### Fixes 🔧

- Remove confirmation for opening the merge tool by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5094](jesseduffield/lazygit#5094)
- Allow using 'j', 'k', 'H', or 'L' as keybindings in custom command menus by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5131](jesseduffield/lazygit#5131)
- Prevent many hyperlinks from launching while mouse moving by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5133](jesseduffield/lazygit#5133)
- Fix the main view display after reverting a commit by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5138](jesseduffield/lazygit#5138)
- Avoid scrolling the selection into view on refresh by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5134](jesseduffield/lazygit#5134)
- Fix rendering of certain emojis by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5116](jesseduffield/lazygit#5116)

##### Docs 📖

- Fix small issues with the Breaking Changes texts by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5114](jesseduffield/lazygit#5114)
- Add a note about delta's `--navigate` option not working in lazygit by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5155](jesseduffield/lazygit#5155)
- Update docs and schema for release by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5168](jesseduffield/lazygit#5168)

##### I18n 🌎

- Update translations from Crowdin by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5167](jesseduffield/lazygit#5167)

##### Performance Improvements 📊

- Fix annoying UI stalls after refresh (e.g. background fetch) when the reflog is very long by [@&#8203;stefanhaller](https://github.com/stefanhaller) in [#&#8203;5135](jesseduffield/lazygit#5135)

#### New Contributors

- [@&#8203;yaadata](https://github.com/yaadata) made their first contribution in [#&#8203;5130](jesseduffield/lazygit#5130)
- [@&#8203;HerrNaN](https://github.com/HerrNaN) made their first contribution in [#&#8203;5129](jesseduffield/lazygit#5129)

**Full Changelog**: <jesseduffield/lazygit@v0.57.0...v0.58.0>

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi42OS4yIiwidXBkYXRlZEluVmVyIjoiNDIuNjkuMiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90IiwiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJkZXBlbmRlbmN5LXR5cGU6Om1pbm9yIl19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The scroll position in the Files pane resets periodically

2 participants