mirror of
https://github.com/jesseduffield/lazygit.git
synced 2026-10-06 05:57:38 -04:00
If a diff and then a message are asked for in the main view before the next layout, the main view shows the diff. One way this happens is switching tabs twice in rapid succession. Another is discarding the changes of the only changed file. Closing the menu asks for the file's diff, and if the files are refreshed before the layout, "No changed files" is asked for next. The main view then stays empty, because by the time the diff runs, the file has no changes. This made the hide_selection_when_changes_vanish test fail now and then. A diff's task is only created after the layout, since the layout settles the width that the diff is laid out to. A diff renderer's task has been created there since8b8343b8a9, and the task for git's own diff since0afb94e97b. A view shows the task that was created last, so the diff's task replaced the message's. Reserve the diff's place among the view's tasks when the diff is asked for, and give its task that place when it is created after the layout. If another task has been asked for in the meantime, don't create the diff's task at all. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>