jesseduffield.lazygit/pkg/gui/controllers
Stefan Haller a67eda39a5 Rerender fewer views when their width changes
In d5b4f7bb3e and 58a83b0862 we introduced a combined mechanism for rerendering
views when either their width changes (needed for the branches view which
truncates long branch names), or the screen mode (needed for those views that
display more information in half or full screen mode, e.g. the commits view).

This was a bad idea, because it unnecessarily rerenders too many views when just
their width changes, which causes a noticable lag. This is a problem, for
example, when selecting a file in the files panel that has only unstaged
changes, and then going to one that has both staged and unstaged changes; this
splits the main view, causing the side panels to become a bit narrower, and
rerendering all those views took almost 500ms on my machine. Another similar
example is entering or leaving staging mode.

Fix this by being more specific about which views need rerendering under what
conditions; this improves the time it takes to rerender in the above scenarios
from 450-500s down to about 20ms.

This reintroduces the code that was removed in 58a83b0862, but in a slightly
different way.
2024-06-23 13:10:48 +02:00
..
helpers Show radio buttons in the sort order menu for branches 2024-06-23 12:53:15 +02:00
attach.go Begin refactoring gui 2023-04-30 13:19:52 +10:00
base_controller.go Begin refactoring gui 2023-04-30 13:19:52 +10:00
basic_commits_controller.go Remove ErrorMsg 2024-04-18 10:10:30 +02:00
bisect_controller.go Return error from RefreshOptions.Then 2024-04-18 10:10:30 +02:00
branches_controller.go Show radio buttons in the sort order menu for branches 2024-06-23 12:53:15 +02:00
command_log_controller.go Enforce single-item selection in various actions 2024-01-19 10:50:49 +11:00
commit_description_controller.go Add a commit menu to the commit message panel 2024-03-11 09:18:40 +01:00
commit_message_controller.go Remove ErrorMsg 2024-04-18 10:10:30 +02:00
commits_files_controller.go Remove ErrorMsg 2024-04-18 10:10:30 +02:00
common.go lots of changes 2023-04-30 13:19:53 +10:00
confirmation_controller.go Show delete/edit keybindings in suggestions subtitle if available 2024-05-19 07:06:18 +02:00
context_lines_controller.go Remove calls to Error() 2024-04-18 10:10:30 +02:00
custom_command_action.go Allow editing a custom command from the suggestions list by pressing 'e' 2024-05-19 07:06:18 +02:00
custom_patch_options_menu_action.go Fix custom patch operations on added files 2024-06-23 12:40:31 +02:00
diffing_menu_action.go Remove redundant variable dedeclarations 2024-05-19 16:38:21 +10:00
files_controller.go Always show the "Discard unchanged changes" menu item 2024-06-23 12:43:34 +02:00
filter_controller.go Introduce filtered list view model 2023-07-03 12:54:13 +10:00
filtering_menu_action.go Return error from RefreshOptions.Then 2024-04-18 10:10:30 +02:00
git_flow_controller.go Remove ErrorMsg 2024-04-18 10:10:30 +02:00
global_controller.go Show mode-specific keybinding suggestions 2024-01-28 08:33:13 +11:00
jump_to_side_window_controller.go Enforce single-item selection in various actions 2024-01-19 10:50:49 +11:00
list_controller.go Render the view when scrolling with the wheel 2024-06-23 11:54:21 +02:00
list_controller_trait.go Remove ErrorMsg 2024-04-18 10:10:30 +02:00
local_commits_controller.go Show radio buttons in the show log graph and commit sort order menus 2024-06-23 12:53:15 +02:00
local_commits_controller_test.go Keep the same line selected after squashing fixup commits 2024-03-09 07:55:22 +01:00
menu_controller.go Show mode-specific keybinding suggestions 2024-01-28 08:33:13 +11:00
merge_conflicts_controller.go Display more keybindings on-screen 2024-01-28 08:33:13 +11:00
options_menu_action.go Do not include keybindings from another view in keybindings menu 2024-01-15 20:08:11 +11:00
patch_building_controller.go Display more keybindings on-screen 2024-01-28 08:33:13 +11:00
patch_explorer_controller.go Remove calls to Error() 2024-04-18 10:10:30 +02:00
quit_actions.go Clear range select upon pressing 'escape' 2024-01-19 10:47:21 +11:00
reflog_commits_controller.go rename sha to hash 2024-04-12 08:33:47 +02:00
remote_branches_controller.go Show radio buttons in the sort order menu for branches 2024-06-23 12:53:15 +02:00
remotes_controller.go Remove calls to Error() 2024-04-18 10:10:30 +02:00
screen_mode_actions.go Rerender fewer views when their width changes 2024-06-23 13:10:48 +02:00
scroll_off_margin.go Replace min/max helpers with built-in min/max 2024-04-07 23:24:10 +08:00
scroll_off_margin_test.go Add tests for scroll-off margin of zero 2023-08-21 08:10:28 +02:00
search_controller.go Introduce filtered list view model 2023-07-03 12:54:13 +10:00
search_prompt_controller.go Enforce single-item selection in various actions 2024-01-19 10:50:49 +11:00
side_window_controller.go Enforce single-item selection in various actions 2024-01-19 10:50:49 +11:00
snake_controller.go Enforce single-item selection in various actions 2024-01-19 10:50:49 +11:00
staging_controller.go Remove calls to Error() 2024-04-18 10:10:30 +02:00
stash_controller.go Remove calls to Error() 2024-04-18 10:10:30 +02:00
status_controller.go Remove ColoredBranchStatus and branchStatusColor 2024-06-03 13:02:46 +02:00
sub_commits_controller.go Make OnWorker callback return an error 2024-04-18 10:10:30 +02:00
submodules_controller.go Remove calls to Error() 2024-04-18 10:10:30 +02:00
suggestions_controller.go Show delete/edit keybindings in suggestions subtitle if available 2024-05-19 07:06:18 +02:00
switch_to_diff_files_controller.go Avoid crash when hitting enter on an update-ref todo 2024-02-16 13:06:24 +01:00
switch_to_sub_commits_controller.go Set groundwork for better disabled reasons with range select 2024-01-23 13:03:37 +11:00
sync_controller.go Use --force instead of --force-with-lease when remote is not stored locally 2024-06-01 08:12:45 +02:00
tags_controller.go standardize 'Commit Sha' to 'Commit Hash' 2024-04-12 08:31:40 +02:00
toggle_whitespace_action.go Remove ErrorMsg 2024-04-18 10:10:30 +02:00
types.go introduce Ref interface 2022-04-02 17:04:42 +11:00
undo_controller.go chore: fix some comments and typos 2024-04-28 09:44:59 +02:00
vertical_scroll_controller.go lots of changes 2023-04-30 13:19:53 +10:00
workspace_reset_controller.go Remove ErrorMsg 2024-04-18 10:10:30 +02:00
worktree_options_controller.go Set groundwork for better disabled reasons with range select 2024-01-23 13:03:37 +11:00
worktrees_controller.go Remove ErrorMsg 2024-04-18 10:10:30 +02:00