loolwsd: rework setclientpart
This commit is contained in:
parent
78308db763
commit
200c6a9281
3 changed files with 15 additions and 21 deletions
|
@ -284,7 +284,6 @@ ChildProcessSession::ChildProcessSession(const std::string& id,
|
|||
_multiView(std::getenv("LOK_VIEW_CALLBACK")),
|
||||
_jailId(jailId),
|
||||
_viewId(0),
|
||||
_clientPart(0),
|
||||
_onLoad(onLoad),
|
||||
_onUnload(onUnload),
|
||||
_callbackWorker(new CallbackWorker(_callbackQueue, *this))
|
||||
|
@ -459,18 +458,6 @@ bool ChildProcessSession::_handleInput(const char *buffer, int length)
|
|||
tokens[0] == "userinactive" ||
|
||||
tokens[0] == "editlock:");
|
||||
|
||||
{
|
||||
std::unique_lock<std::recursive_mutex> lock(Mutex);
|
||||
|
||||
if (_multiView)
|
||||
_loKitDocument->pClass->setView(_loKitDocument, _viewId);
|
||||
|
||||
if (_docType != "text" && _loKitDocument->pClass->getPart(_loKitDocument) != _clientPart)
|
||||
{
|
||||
_loKitDocument->pClass->setPart(_loKitDocument, _clientPart);
|
||||
}
|
||||
}
|
||||
|
||||
if (tokens[0] == "clientzoom")
|
||||
{
|
||||
return clientZoom(buffer, length, tokens);
|
||||
|
@ -593,7 +580,6 @@ bool ChildProcessSession::loadDocument(const char * /*buffer*/, int /*length*/,
|
|||
|
||||
if (_docType != "text" && part != -1)
|
||||
{
|
||||
_clientPart = part;
|
||||
_loKitDocument->pClass->setPart(_loKitDocument, part);
|
||||
}
|
||||
|
||||
|
@ -1345,11 +1331,25 @@ bool ChildProcessSession::saveAs(const char* /*buffer*/, int /*length*/, StringT
|
|||
|
||||
bool ChildProcessSession::setClientPart(const char* /*buffer*/, int /*length*/, StringTokenizer& tokens)
|
||||
{
|
||||
int part;
|
||||
if (tokens.count() < 2 ||
|
||||
!getTokenInteger(tokens[1], "part", _clientPart))
|
||||
!getTokenInteger(tokens[1], "part", part))
|
||||
{
|
||||
sendTextFrame("error: cmd=setclientpart kind=invalid");
|
||||
return false;
|
||||
}
|
||||
|
||||
std::unique_lock<std::recursive_mutex> lock(Mutex);
|
||||
|
||||
if (part == _loKitDocument->pClass->getPart(_loKitDocument))
|
||||
return true;
|
||||
|
||||
if (_multiView)
|
||||
_loKitDocument->pClass->setView(_loKitDocument, _viewId);
|
||||
|
||||
_loKitDocument->pClass->setPart(_loKitDocument, part);
|
||||
// invalidate all
|
||||
loKitCallback(LOK_CALLBACK_INVALIDATE_TILES, std::string("EMPTY").c_str());
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -99,7 +99,6 @@ private:
|
|||
const std::string _jailId;
|
||||
/// View ID, returned by createView() or 0 by default.
|
||||
int _viewId;
|
||||
int _clientPart;
|
||||
std::map<int, std::string> _lastDocStates;
|
||||
std::function<LibreOfficeKitDocument*(const std::string&, const std::string&, const std::string&, bool)> _onLoad;
|
||||
std::function<void(const std::string&)> _onUnload;
|
||||
|
|
|
@ -351,11 +351,6 @@ bool MasterProcessSession::_handleInput(const char *buffer, int length)
|
|||
dispatchChild();
|
||||
}
|
||||
|
||||
if (tokens[0] == "setclientpart")
|
||||
{
|
||||
_docBroker->tileCache().removeFile("status.txt");
|
||||
}
|
||||
|
||||
// Allow 'downloadas' for all kinds of views irrespective of editlock
|
||||
if (_kind == Kind::ToClient && !isEditLocked() && tokens[0] != "downloadas" &&
|
||||
tokens[0] != "userinactive" && tokens[0] != "useractive")
|
||||
|
|
Loading…
Reference in a new issue