mirror of
https://github.com/kovidgoyal/kitty
synced 2026-06-09 15:08:13 +02:00
Only unload preview when changed instead of on each render
This commit is contained in:
@@ -207,18 +207,19 @@ type ScreenSize struct {
|
||||
}
|
||||
|
||||
type Handler struct {
|
||||
state State
|
||||
screen_size ScreenSize
|
||||
result_manager *ResultManager
|
||||
lp *loop.Loop
|
||||
rl *readline.Readline
|
||||
err_chan chan error
|
||||
shortcut_tracker config.ShortcutTracker
|
||||
msg_printer *message.Printer
|
||||
spinner *tui.Spinner
|
||||
preview_manager *PreviewManager
|
||||
last_rendered_preview Preview
|
||||
graphics_handler GraphicsHandler
|
||||
state State
|
||||
screen_size ScreenSize
|
||||
result_manager *ResultManager
|
||||
lp *loop.Loop
|
||||
rl *readline.Readline
|
||||
err_chan chan error
|
||||
shortcut_tracker config.ShortcutTracker
|
||||
msg_printer *message.Printer
|
||||
spinner *tui.Spinner
|
||||
preview_manager *PreviewManager
|
||||
last_rendered_preview Preview
|
||||
last_rendered_preview_abspath string
|
||||
graphics_handler GraphicsHandler
|
||||
}
|
||||
|
||||
func (self *Handler) on_escape_code(etype loop.EscapeCodeType, payload []byte) error {
|
||||
|
||||
@@ -326,8 +326,12 @@ func (h *Handler) draw_preview_content(x, y, width, height int) {
|
||||
h.render_wrapped_text_in_region("No preview available", x, y, width, height, false)
|
||||
return
|
||||
}
|
||||
abspath := filepath.Join(h.state.CurrentDir(), r.text)
|
||||
abspath := h.current_abspath()
|
||||
if h.last_rendered_preview != nil {
|
||||
if abspath == h.last_rendered_preview_abspath {
|
||||
h.last_rendered_preview.Render(h, x, y, width, height)
|
||||
return
|
||||
}
|
||||
h.last_rendered_preview.Unload()
|
||||
h.last_rendered_preview = nil
|
||||
}
|
||||
@@ -335,6 +339,7 @@ func (h *Handler) draw_preview_content(x, y, width, height int) {
|
||||
h.render_wrapped_text_in_region("No preview available", x, y, width, height, false)
|
||||
} else {
|
||||
h.last_rendered_preview = p
|
||||
h.last_rendered_preview_abspath = abspath
|
||||
p.Render(h, x, y, width, height)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user