From 70d7f5fa70dcc85ac40be64923ee61bbdcc6384a Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Wed, 30 Aug 2023 13:40:22 -0400 Subject: [PATCH] tracklist: Use the Gtk.ColumnView.scroll_to() function for scrolling Rather than trying to implement this myself through manually moving the scrolled window. It's much easier to simply let Gtk do the work for us. Signed-off-by: Anna Schumaker --- emmental/tracklist/trackview.py | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/emmental/tracklist/trackview.py b/emmental/tracklist/trackview.py index 81aa37e..5cca588 100644 --- a/emmental/tracklist/trackview.py +++ b/emmental/tracklist/trackview.py @@ -81,13 +81,9 @@ class TrackView(Gtk.ScrolledWindow): def scroll_to_track(self, track: db.tracks.Track) -> None: """Scroll to the requested Track.""" - # This is a workaround until the ColumnView has better scrolling - # support, which seems to be targeted for Gtk 4.10. - adjustment = self._scrollwin.get_vadjustment() - for (i, t) in enumerate(self._selection): - if t == track: - pos = max(i - 3, 0) * adjustment.get_upper() - adjustment.set_value(pos / self._selection.get_n_items()) + for i in range(self._selection.props.n_items): + if self._selection[i] == track: + self._columnview.scroll_to(i, None, Gtk.ListScrollFlags.NONE) @GObject.Property(type=Gio.ListModel) def columns(self) -> Gio.ListModel: