feat: improve Terminal emulator performance

This commit is contained in:
2026-05-16 09:33:30 +02:00
parent 005bd33f32
commit f8e8af1d78
5 changed files with 543 additions and 207 deletions
+3
View File
@@ -93,6 +93,7 @@ static void term_free_tab(TerminalState* ts) {
if (ts->child_pid > 0) term_kill_process_tree(ts->child_pid);
if (ts->cells) montauk::free(ts->cells);
if (ts->alt_cells) montauk::free(ts->alt_cells);
if (ts->render_cells) montauk::free(ts->render_cells);
montauk::mfree(ts);
}
@@ -133,6 +134,7 @@ static void term_close_tab(int idx) {
if (g_tabs.active_tab >= g_tabs.tab_count)
g_tabs.active_tab = g_tabs.tab_count - 1;
terminal_invalidate_render_cache(g_tabs.tabs[g_tabs.active_tab]);
g_tabs.tabs[g_tabs.active_tab]->dirty = true;
term_request_redraw();
}
@@ -192,6 +194,7 @@ static bool term_render() {
}
if (g_tabs.active_tab != g_tabs.prev_active_tab) {
terminal_invalidate_render_cache(g_tabs.tabs[g_tabs.active_tab]);
g_tabs.tabs[g_tabs.active_tab]->dirty = true;
g_tabs.prev_active_tab = g_tabs.active_tab;
}