summary refs log tree commit diff
path: root/src/timeline
diff options
context:
space:
mode:
Diffstat (limited to 'src/timeline')
-rw-r--r--src/timeline/TimelineView.cc13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/timeline/TimelineView.cc b/src/timeline/TimelineView.cc
index dd51fc52..dccc6f37 100644
--- a/src/timeline/TimelineView.cc
+++ b/src/timeline/TimelineView.cc
@@ -21,7 +21,6 @@
 
 #include "FloatingButton.h"
 #include "RoomMessages.h"
-#include "ScrollBar.h"
 
 #include "timeline/TimelineView.h"
 #include "timeline/widgets/AudioItem.h"
@@ -83,12 +82,18 @@ TimelineView::sliderRangeChanged(int min, int max)
 void
 TimelineView::fetchHistory()
 {
-        bool hasEnoughMessages = scroll_area_->verticalScrollBar()->isVisible();
+        if (!isScrollbarActivated() && !isTimelineFinished) {
+                if (!isVisible()) {
+                        // Check again later if the timeline became visible.
+                        // TODO: Use a backoff strategy.
+                        paginationTimer_->start(3000);
+                        return;
+                }
 
-        if (!hasEnoughMessages && !isTimelineFinished) {
                 isPaginationInProgress_ = true;
                 client_->messages(room_id_, prev_batch_token_);
-                paginationTimer_->start(500);
+                paginationTimer_->start(1500);
+
                 return;
         }