[Libreoffice-commits] online.git: Branch 'distro/collabora/milestone-7' - loolwsd/LOOLSession.cpp loolwsd/LOOLSession.hpp loolwsd/protocol.txt
Miklos Vajna
vmiklos at collabora.co.uk
Tue Feb 2 10:51:46 UTC 2016
loolwsd/LOOLSession.cpp | 28 ++++++++++++++++++++++++++++
loolwsd/LOOLSession.hpp | 1 +
loolwsd/protocol.txt | 4 ++++
3 files changed, 33 insertions(+)
New commits:
commit 8e95cf10fbb0aa8bcf2016e0a6cba256b072f49c
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Tue Feb 2 11:48:41 2016 +0100
loolwsd: add clientvisiblearea client -> server command
(cherry picked from commit aa450a0c3887dfee75262816ec29a9e28f48f7bf)
Conflicts:
loolwsd/ChildProcessSession.cpp
loolwsd/ChildProcessSession.hpp
loolwsd/MasterProcessSession.cpp
Change-Id: I7fa50eb52d2db892529729bc3c1826b14f266eb6
diff --git a/loolwsd/LOOLSession.cpp b/loolwsd/LOOLSession.cpp
index 73b9a5c..8643196 100644
--- a/loolwsd/LOOLSession.cpp
+++ b/loolwsd/LOOLSession.cpp
@@ -379,6 +379,7 @@ bool MasterProcessSession::handleInput(const char *buffer, int length)
}
else if (tokens[0] != "canceltiles" &&
tokens[0] != "clientzoom" &&
+ tokens[0] != "clientvisiblearea" &&
tokens[0] != "commandvalues" &&
tokens[0] != "downloadas" &&
tokens[0] != "getchildid" &&
@@ -880,6 +881,7 @@ bool ChildProcessSession::handleInput(const char *buffer, int length)
// i.e. need to be handled in a child process.
assert(tokens[0] == "clientzoom" ||
+ tokens[0] == "clientvisiblearea" ||
tokens[0] == "downloadas" ||
tokens[0] == "getchildid" ||
tokens[0] == "gettextselection" ||
@@ -901,6 +903,10 @@ bool ChildProcessSession::handleInput(const char *buffer, int length)
{
return clientZoom(buffer, length, tokens);
}
+ else if (tokens[0] == "clientvisiblearea")
+ {
+ return clientVisibleArea(buffer, length, tokens);
+ }
else if (tokens[0] == "downloadas")
{
return downloadAs(buffer, length, tokens);
@@ -1416,6 +1422,28 @@ bool ChildProcessSession::clientZoom(const char* /*buffer*/, int /*length*/, Str
_loKitDocument->pClass->setClientZoom(_loKitDocument, tilePixelWidth, tilePixelHeight, tileTwipWidth, tileTwipHeight);
return true;
}
+
+bool ChildProcessSession::clientVisibleArea(const char* /*buffer*/, int /*length*/, StringTokenizer& tokens)
+{
+ int x;
+ int y;
+ int width;
+ int height;
+
+ if (tokens.count() != 5 ||
+ !getTokenInteger(tokens[1], "x", x) ||
+ !getTokenInteger(tokens[2], "y", y) ||
+ !getTokenInteger(tokens[3], "width", width) ||
+ !getTokenInteger(tokens[4], "height", height))
+ {
+ sendTextFrame("error: cmd=clientvisiblearea kind=syntax");
+ return false;
+ }
+
+ _loKitDocument->pClass->setClientVisibleArea(_loKitDocument, x, y, width, height);
+ return true;
+}
+
bool ChildProcessSession::downloadAs(const char* /*buffer*/, int /*length*/, StringTokenizer& tokens)
{
std::string name, id, format, filterOptions;
diff --git a/loolwsd/LOOLSession.hpp b/loolwsd/LOOLSession.hpp
index 9413544..75feacd 100644
--- a/loolwsd/LOOLSession.hpp
+++ b/loolwsd/LOOLSession.hpp
@@ -206,6 +206,7 @@ public:
virtual void sendFontRendering(const char *buffer, int length, Poco::StringTokenizer& tokens);
bool clientZoom(const char *buffer, int length, Poco::StringTokenizer& tokens);
+ bool clientVisibleArea(const char *buffer, int length, Poco::StringTokenizer& tokens);
bool downloadAs(const char *buffer, int length, Poco::StringTokenizer& tokens);
bool getChildId();
bool getTextSelection(const char *buffer, int length, Poco::StringTokenizer& tokens);
diff --git a/loolwsd/protocol.txt b/loolwsd/protocol.txt
index 1d8890d..d3071c6 100644
--- a/loolwsd/protocol.txt
+++ b/loolwsd/protocol.txt
@@ -107,6 +107,10 @@ partpagerectangles
Invokes lok::Document::getPartPageRectangles().
+clientvisiblearea x=<x> y=<y> width=<width> height=<height>
+
+ Invokes lok::Document::setClientVisibleArea().
+
server -> client
================
More information about the Libreoffice-commits
mailing list