feat: improve Terminal emulator performance
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user