diff options
author | Michael Meeks <michael.meeks@collabora.com> | 2020-11-13 16:21:08 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2020-11-13 16:45:52 +0000 |
commit | 4ed24ed55543d3a6a1ef69a9804daad83ea5f883 (patch) | |
tree | e24ed4c0b8bade3f265f96009546175c90fb5703 | |
parent | Trackpad scrolling on Chromebook (diff) | |
download | online-private/michael/viewid-6-4.tar.gz online-private/michael/viewid-6-4.zip |
set normalized view id for broadcast (ie. slide preview) thumbnails.
private/michael/viewid-6-4
Change-Id: Ica5312ae9c7147c8dc969523e28d460348ba2e76
Signed-off-by: Michael Meeks <michael.meeks@collabora.com>
-rw-r--r-- | wsd/ClientSession.cpp | 4 | ||||
-rw-r--r-- | wsd/DocumentBroker.cpp | 8 | ||||
-rw-r--r-- | wsd/DocumentBroker.hpp | 2 |
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); |