summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2020-11-13 16:21:08 +0000
committerMichael Meeks <michael.meeks@collabora.com>2020-11-13 17:16:30 +0000
commit08108093825a1dc742b6017a165ee398b1328a7a (patch)
treee24ed4c0b8bade3f265f96009546175c90fb5703
parentTrackpad scrolling on Chromebook (diff)
downloadonline-private/michael/viewid.tar.gz
online-private/michael/viewid.zip
Set normalized view id for broadcast (ie. slide preview) thumbnails. private/michael/viewid
Change-Id: Ica5312ae9c7147c8dc969523e28d460348ba2e76 Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
-rw-r--r--wsd/ClientSession.cpp4
-rw-r--r--wsd/DocumentBroker.cpp8
-rw-r--r--wsd/DocumentBroker.hpp2
3 files changed, 9 insertions, 5 deletions
diff --git a/wsd/ClientSession.cpp b/wsd/ClientSession.cpp
index 52d9c67177..20d1a43ef4 100644
--- a/wsd/ClientSession.cpp
+++ b/wsd/ClientSession.cpp
@@ -909,9 +909,7 @@ bool ClientSession::sendTile(const char * /*buffer*/, int /*length*/, const Stri
{
try
{
- TileDesc tileDesc = TileDesc::parse(tokens);
- tileDesc.setNormalizedViewId(getCanonicalViewId());
- docBroker->handleTileRequest(tileDesc, client_from_this());
+ docBroker->handleTileRequest(tokens, client_from_this());
}
catch (const std::exception& exc)
{
diff --git a/wsd/DocumentBroker.cpp b/wsd/DocumentBroker.cpp
index 71c3a61930..1de86c7f8d 100644
--- a/wsd/DocumentBroker.cpp
+++ b/wsd/DocumentBroker.cpp
@@ -1753,12 +1753,15 @@ size_t DocumentBroker::getMemorySize() const
}
// Expected to be legacy, ~all new requests are tilecombinedRequests
-void DocumentBroker::handleTileRequest(TileDesc& tile,
+void DocumentBroker::handleTileRequest(const StringVector &tokens,
const std::shared_ptr<ClientSession>& session)
{
assertCorrectThread();
std::unique_lock<std::mutex> lock(_mutex);
+ TileDesc tile = TileDesc::parse(tokens);
+ tile.setNormalizedViewId(session->getCanonicalViewId());
+
tile.setVersion(++_tileVersion);
const std::string tileMsg = tile.serialize();
LOG_TRC("Tile request for " << tileMsg);
@@ -1783,7 +1786,10 @@ void DocumentBroker::handleTileRequest(TileDesc& tile,
for (auto& it: _sessions)
{
if (!it.second->inWaitDisconnected())
+ {
+ tile.setNormalizedViewId(it.second->getCanonicalViewId());
tileCache().subscribeToTileRendering(tile, it.second, now);
+ }
}
}
else
diff --git a/wsd/DocumentBroker.hpp b/wsd/DocumentBroker.hpp
index abff6ce313..7bcba6830a 100644
--- a/wsd/DocumentBroker.hpp
+++ b/wsd/DocumentBroker.hpp
@@ -245,7 +245,7 @@ public:
_tileCache->invalidateTiles(tiles, normalizedViewId);
}
- void handleTileRequest(TileDesc& tile,
+ void handleTileRequest(const StringVector &tokens,
const std::shared_ptr<ClientSession>& session);
void handleTileCombinedRequest(TileCombined& tileCombined,
const std::shared_ptr<ClientSession>& session);