diff options
author | Philipp Hörist <philipp@hoerist.com> | 2022-10-01 01:42:59 +0300 |
---|---|---|
committer | Philipp Hörist <philipp@hoerist.com> | 2022-10-01 01:57:05 +0300 |
commit | 327eca05543f97429205d7713da160b223eaccfc (patch) | |
tree | f66df6e89067f03741c5d9b4e4ec04b1ad4b4e18 | |
parent | 10c86624ad4f42c838f4b7e1be03b8c4f1df81ea (diff) |
fix: Scroll to end after sending message
Scrolling to end is much simpler than reseting the view and less
error prone.
Fixes #10871
-rw-r--r-- | gajim/gtk/control.py | 2 | ||||
-rw-r--r-- | gajim/gtk/conversation/view.py | 5 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gajim/gtk/control.py b/gajim/gtk/control.py index ab4adab5d..b7391ab33 100644 --- a/gajim/gtk/control.py +++ b/gajim/gtk/control.py @@ -531,7 +531,7 @@ class ChatControl(EventHelper): if not self._scrolled_view.get_autoscroll(): if kind == 'outgoing': - self.reset_view() + self._scrolled_view.scroll_to_end() else: self._jump_to_end_button.add_unread_count() else: diff --git a/gajim/gtk/conversation/view.py b/gajim/gtk/conversation/view.py index 10fa55419..144990db6 100644 --- a/gajim/gtk/conversation/view.py +++ b/gajim/gtk/conversation/view.py @@ -216,6 +216,7 @@ class ConversationView(Gtk.ScrolledWindow): def _reset(self) -> None: self._current_upper = 0 + self._autoscroll = True self._request_history_at_upper = None self._upper_complete = False self._lower_complete = True @@ -633,6 +634,10 @@ class ConversationView(Gtk.ScrolledWindow): # This scrolls the ListBox to the highlighted row highlight_row.grab_focus() + def scroll_to_end(self) -> None: + adj = self.get_vadjustment() + adj.set_value(adj.get_upper() - adj.get_page_size()) + def _get_row_by_message_id(self, id_: str) -> Optional[MessageRow]: return self._message_id_row_map.get(id_) |