Private
Public Access
1
0

transcriptview perf: only draw the items that are actually visible.

This commit is contained in:
2025-06-16 20:09:56 -07:00
parent 2db0e3136e
commit c70ae00d5b
2 changed files with 69 additions and 18 deletions

View File

@@ -17,8 +17,10 @@ public class TranscriptView : Adw.Bin
_model = value;
if (value != null) {
// Reset scroll position
scrolled_window.vadjustment = new Gtk.Adjustment(0, 0, 0, 0, 0, 0);
// Reset scroll position by updating the existing adjustment
scrolled_window.vadjustment.value = 0;
scrolled_window.vadjustment.upper = 0;
scrolled_window.vadjustment.page_size = 0;
weak TranscriptView self = this;
messages_changed_handler_id = value.messages_changed.connect(() => {
@@ -56,8 +58,14 @@ public class TranscriptView : Adw.Bin
scrolled_window.set_child(transcript_drawing_area);
scrolled_window.add_css_class("message-list-scroller");
transcript_drawing_area.viewport = scrolled_window.vadjustment;
container.set_content(scrolled_window);
// Connect to the adjustment's value_changed signal
scrolled_window.vadjustment.value_changed.connect(() => {
transcript_drawing_area.viewport = scrolled_window.vadjustment;
});
var header_bar = new Adw.HeaderBar();
title_label.single_line_mode = true;
title_label.ellipsize = Pango.EllipsizeMode.END;