-void Client::requestInitialBacklog() {
- if(bufferViewManager()->isInitialized() && bufferSyncer()->isInitialized())
- Client::backlogManager()->requestInitialBacklog();
+void Client::requestInitialBacklogBarrier() {
+ // usually it _should_ take longer until the bufferViews are initialized, so that's what
+ // triggers this slot. But we have to make sure that we know all buffers yet.
+ // so we check the BufferSyncer and in case it wasn't initialized we wait for that instead
+ if(!bufferSyncer()->isInitialized()) {
+ disconnect(bufferViewManager(), SIGNAL(viewsInitialized()), this, SLOT(requestInitialBacklogBarrier()));
+ connect(bufferSyncer(), SIGNAL(initDone()), this, SLOT(requestInitialBacklogBarrier()));
+ return;
+ }
+ emit requestInitialBacklog();