kit/ChildSession.cpp | 32 ++++++++++++++++++++++++-------- loleaflet/src/layer/marker/TextInput.js | 4 +--- 2 files changed, 25 insertions(+), 11 deletions(-)
New commits: commit bda31ada6962147984f39f2c37c1c7fb4933058e Author: Michael Meeks <michael.me...@collabora.com> AuthorDate: Wed Aug 5 17:16:08 2020 +0100 Commit: Andras Timar <andras.ti...@collabora.com> CommitDate: Mon Aug 17 20:20:59 2020 +0200 textinput: use a single input message per key on the wire. Change-Id: Ibd0f7afb98c8ed278751c4b5b46d7ce2467cd71f Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100184 Tested-by: Jenkins Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Michael Meeks <michael.me...@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/online/+/100663 Reviewed-by: Andras Timar <andras.ti...@collabora.com> diff --git a/kit/ChildSession.cpp b/kit/ChildSession.cpp index 8d1fef6fb..7f6dbaa8b 100644 --- a/kit/ChildSession.cpp +++ b/kit/ChildSession.cpp @@ -1245,15 +1245,25 @@ bool ChildSession::insertFile(const char* /*buffer*/, int /*length*/, const Stri bool ChildSession::extTextInputEvent(const char* /*buffer*/, int /*length*/, const StringVector& tokens) { - int id, type; + int id = -1, type = -1; std::string text; - if (tokens.size() < 4 || - !getTokenInteger(tokens[1], "id", id) || id < 0 || - !getTokenKeyword(tokens[2], "type", - {{"input", LOK_EXT_TEXTINPUT}, {"end", LOK_EXT_TEXTINPUT_END}}, - type) || - !getTokenString(tokens[3], "text", text)) + bool error = false; + + if (tokens.size() < 3) + error = true; + else if (!getTokenInteger(tokens[1], "id", id) || id < 0) + error = true; + else { + // back-compat 'type' + if (getTokenKeyword(tokens[2], "type", + {{"input", LOK_EXT_TEXTINPUT}, {"end", LOK_EXT_TEXTINPUT_END}}, + type)) + error = !getTokenString(tokens[3], "text", text); + else // normal path: + error = !getTokenString(tokens[2], "text", text); + } + if (error) { sendTextFrameAndLogError("error: cmd=" + std::string(tokens[0]) + " kind=syntax"); return false; @@ -1263,7 +1273,13 @@ bool ChildSession::extTextInputEvent(const char* /*buffer*/, int /*length*/, URI::decode(text, decodedText); getLOKitDocument()->setView(_viewId); - getLOKitDocument()->postWindowExtTextInputEvent(id, type, decodedText.c_str()); + if (type >= 0) + getLOKitDocument()->postWindowExtTextInputEvent(id, type, decodedText.c_str()); + else + { + getLOKitDocument()->postWindowExtTextInputEvent(id, LOK_EXT_TEXTINPUT, decodedText.c_str()); + getLOKitDocument()->postWindowExtTextInputEvent(id, LOK_EXT_TEXTINPUT_END, decodedText.c_str()); + } return true; } diff --git a/loleaflet/src/layer/marker/TextInput.js b/loleaflet/src/layer/marker/TextInput.js index 801c9d368..9fe093ce7 100644 --- a/loleaflet/src/layer/marker/TextInput.js +++ b/loleaflet/src/layer/marker/TextInput.js @@ -740,9 +740,7 @@ L.TextInput = L.Layer.extend({ var encodedText = encodeURIComponent(text); var winId = this._map.getWinId(); this._map._socket.sendMessage( - 'textinput id=' + winId + ' type=input text=' + encodedText); - this._map._socket.sendMessage( - 'textinput id=' + winId + ' type=end text=' + encodedText); + 'textinput id=' + winId + ' text=' + encodedText); } }, _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits