diff --git a/include/timeline/TimelineView.h b/include/timeline/TimelineView.h index 1ebf6eb7..ddabf104 100644 --- a/include/timeline/TimelineView.h +++ b/include/timeline/TimelineView.h @@ -134,6 +134,8 @@ private: }); }; + //! Decides whether or not to show or hide the scroll down button. + void toggleScrollDownButton(); void init(); void addTimelineItem(TimelineItem *item, TimelineDirection direction); void updateLastSender(const QString &user_id, TimelineDirection direction); diff --git a/src/timeline/TimelineView.cc b/src/timeline/TimelineView.cc index a085b1e0..31d190cc 100644 --- a/src/timeline/TimelineView.cc +++ b/src/timeline/TimelineView.cc @@ -130,15 +130,7 @@ TimelineView::sliderMoved(int position) if (!scroll_area_->verticalScrollBar()->isVisible()) return; - const int maxScroll = scroll_area_->verticalScrollBar()->maximum(); - const int currentScroll = scroll_area_->verticalScrollBar()->value(); - - if (maxScroll - currentScroll > SCROLL_BAR_GAP) { - scrollDownBtn_->show(); - scrollDownBtn_->raise(); - } else { - scrollDownBtn_->hide(); - } + toggleScrollDownButton(); // The scrollbar is high enough so we can start retrieving old events. if (position < SCROLL_BAR_GAP) { @@ -641,6 +633,8 @@ TimelineView::showEvent(QShowEvent *event) scrollDown(); } + toggleScrollDownButton(); + readLastEvent(); QWidget::showEvent(event); @@ -766,3 +760,17 @@ TimelineView::getEventSender(const mtx::events::collections::TimelineEvents &eve return QString(""); } + +void +TimelineView::toggleScrollDownButton() +{ + const int maxScroll = scroll_area_->verticalScrollBar()->maximum(); + const int currentScroll = scroll_area_->verticalScrollBar()->value(); + + if (maxScroll - currentScroll > SCROLL_BAR_GAP) { + scrollDownBtn_->show(); + scrollDownBtn_->raise(); + } else { + scrollDownBtn_->hide(); + } +}