jesseduffield.lazygit/pkg/gui
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
..
context Rerender fewer views when their width changes 2024-06-23 13:10:48 +02:00
controllers Rerender fewer views when their width changes 2024-06-23 13:10:48 +02:00
filetree Remove redundant variable dedeclarations 2024-05-19 16:38:21 +10:00
keybindings Add range selection ability on list contexts 2024-01-19 10:47:21 +11:00
mergeconflicts Remove redundant variable dedeclarations 2024-05-19 16:38:21 +10:00
modes rename sha to hash 5 2024-04-12 08:33:47 +02:00
patch_exploring Remove redundant variable dedeclarations 2024-05-19 16:38:21 +10:00
popup Allow editing a custom command from the suggestions list by pressing 'e' 2024-05-19 07:06:18 +02:00
presentation Fix truncation of long branch names containing non-ASCII characters 2024-06-23 12:25:28 +02:00
services/custom_commands Add property outputTitle to CustomCommand 2024-05-20 21:02:49 +02:00
status Clean up error handling of WithWaitingStatus and WithWaitingStatusSync 2024-04-18 10:10:30 +02:00
style Remove redundant variable dedeclarations 2024-05-19 16:38:21 +10:00
types Rerender fewer views when their width changes 2024-06-23 13:10:48 +02:00
background.go Log memory usage every 10s 2024-06-23 11:48:40 +02:00
command_log_panel.go Introduce filtered list view model 2023-07-03 12:54:13 +10:00
context.go Show mode-specific keybinding suggestions 2024-01-28 08:33:13 +11:00
context_config.go move some methods 2023-04-30 13:19:53 +10:00
controllers.go Clear keybinding functions in resetHelpersAndControllers 2024-06-23 12:28:42 +02:00
dummies.go pkg: fix some comment 2024-04-07 16:09:26 +08:00
editors.go Add emacs-keybinds for word navigation 2023-08-15 12:22:17 +02:00
extras_panel.go Extract a SaveAppStateAndLogError function 2023-09-04 17:50:49 +02:00
global_handlers.go Remove calls to Error() 2024-04-18 10:10:30 +02:00
gui.go Run PTY tasks after layout so that they get the correct view size 2024-06-23 12:36:40 +02:00
gui_common.go Run PTY tasks after layout so that they get the correct view size 2024-06-23 12:36:40 +02:00
gui_driver.go Don't wait in integration tests when running in headless mode 2024-06-05 14:44:02 +02:00
information_panel.go If OpenLink errors, show a dialog instead 2023-08-09 13:12:40 +01:00
keybindings.go Remove ErrorMsg 2024-04-18 10:10:30 +02:00
layout.go Rerender fewer views when their width changes 2024-06-23 13:10:48 +02:00
main_panels.go Run PTY tasks after layout so that they get the correct view size 2024-06-23 12:36:40 +02:00
menu_panel.go Add menu prompt 2024-06-23 12:33:16 +02:00
options_map.go Show mode-specific keybinding suggestions 2024-01-28 08:33:13 +11:00
pty.go Fix possible off-by-one error wrt PTY size 2024-06-23 12:36:40 +02:00
pty_windows.go Format code to pass lint 2021-09-16 21:38:43 +08:00
recent_repos_panel.go Use forward-slashes on windows 2023-07-30 18:35:24 +10:00
tasks_adapter.go Use an interface for tasks instead of a concrete struct 2023-07-10 17:12:21 +10:00
test_mode.go Don't wait in integration tests when running in headless mode 2024-06-05 14:44:02 +02:00
view_helpers.go Make HandleGenericClick a little smarter 2024-03-29 10:55:33 +01:00
views.go Add config for soft-wrapping the commit message body 2024-03-09 10:00:44 +01:00