bundled/include/LibreOfficeKit/LibreOfficeKit.h      |    2 -
 bundled/include/LibreOfficeKit/LibreOfficeKit.hxx    |    4 +--
 bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h |    3 +-
 kit/ChildSession.cpp                                 |   17 ++++++++++++-
 loleaflet/src/control/Control.LokDialog.js           |   24 +++++++++++++++++++
 5 files changed, 45 insertions(+), 5 deletions(-)

New commits:
commit e4b8d9d794aaba5a88cf687b5c1c547428064dbd
Author:     Henry Castro <hcas...@collabora.com>
AuthorDate: Thu Apr 18 18:22:18 2019 -0400
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Thu Jun 13 09:42:54 2019 +0200

    wsd: allow paste content to tunneled dialog
    
    Change-Id: I32fabaa533a0e9d853226b329d2d8b1c489dd776
    Reviewed-on: https://gerrit.libreoffice.org/70960
    Reviewed-by: Henry Castro <hcas...@collabora.com>
    Tested-by: Henry Castro <hcas...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/71370
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>
    Reviewed-by: Jan Holesovsky <ke...@collabora.com>
    Tested-by: Jan Holesovsky <ke...@collabora.com>

diff --git a/bundled/include/LibreOfficeKit/LibreOfficeKit.h 
b/bundled/include/LibreOfficeKit/LibreOfficeKit.h
index fe1b25bc3..133f73875 100644
--- a/bundled/include/LibreOfficeKit/LibreOfficeKit.h
+++ b/bundled/include/LibreOfficeKit/LibreOfficeKit.h
@@ -288,7 +288,7 @@ struct _LibreOfficeKitDocumentClass
                          const int width, const int height);
 
     /// @see lok::Document::postWindow().
-    void (*postWindow) (LibreOfficeKitDocument* pThis, unsigned nWindowId, int 
nAction);
+    void (*postWindow) (LibreOfficeKitDocument* pThis, unsigned nWindowId, int 
nAction, const char* pData);
 
     /// @see lok::Document::postWindowKeyEvent().
     void (*postWindowKeyEvent) (LibreOfficeKitDocument* pThis,
diff --git a/bundled/include/LibreOfficeKit/LibreOfficeKit.hxx 
b/bundled/include/LibreOfficeKit/LibreOfficeKit.hxx
index 72824be0f..a72275ed1 100644
--- a/bundled/include/LibreOfficeKit/LibreOfficeKit.hxx
+++ b/bundled/include/LibreOfficeKit/LibreOfficeKit.hxx
@@ -188,9 +188,9 @@ public:
      *
      * @param nWindowid
      */
-    void postWindow(unsigned nWindowId, int nAction)
+    void postWindow(unsigned nWindowId, int nAction, const char* pData)
     {
-        return mpDoc->pClass->postWindow(mpDoc, nWindowId, nAction);
+        return mpDoc->pClass->postWindow(mpDoc, nWindowId, nAction, pData);
     }
 
     /**
diff --git a/bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h 
b/bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h
index 1d55ce858..b82e28d93 100644
--- a/bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h
+++ b/bundled/include/LibreOfficeKit/LibreOfficeKitEnums.h
@@ -42,7 +42,8 @@ LibreOfficeKitTileMode;
 
 typedef enum
 {
-    LOK_WINDOW_CLOSE
+    LOK_WINDOW_CLOSE,
+    LOK_WINDOW_PASTE
 }
 LibreOfficeKitWindowAction;
 
diff --git a/kit/ChildSession.cpp b/kit/ChildSession.cpp
index 662b0a664..9617a96b7 100644
--- a/kit/ChildSession.cpp
+++ b/kit/ChildSession.cpp
@@ -1311,7 +1311,22 @@ bool ChildSession::sendWindowCommand(const char* 
/*buffer*/, int /*length*/, con
     getLOKitDocument()->setView(_viewId);
 
     if (tokens.size() > 2 && tokens[2] == "close")
-        getLOKitDocument()->postWindow(winId, LOK_WINDOW_CLOSE);
+        getLOKitDocument()->postWindow(winId, LOK_WINDOW_CLOSE, nullptr);
+    else if (tokens.size() > 3 && tokens[2] == "paste")
+    {
+        std::string data;
+        try
+        {
+            URI::decode(tokens[3], data);
+        }
+        catch (Poco::SyntaxException& exc)
+        {
+            sendTextFrame("error: cmd=windowcommand kind=syntax");
+            return false;
+        }
+
+        getLOKitDocument()->postWindow(winId, LOK_WINDOW_PASTE, data.c_str());
+    }
 
     return true;
 }
commit dfd6c8f2661651a6a3419d8525aa1331d83f0e44
Author:     Henry Castro <hcas...@collabora.com>
AuthorDate: Thu Apr 18 18:26:33 2019 -0400
Commit:     Andras Timar <andras.ti...@collabora.com>
CommitDate: Thu Jun 13 09:42:40 2019 +0200

    loleaflet: add 'paste' event listener to dialog
    
    Change-Id: I2ec69117683e4dd75722b1873a373ee6b7ec7782
    Reviewed-on: https://gerrit.libreoffice.org/70961
    Reviewed-by: Henry Castro <hcas...@collabora.com>
    Tested-by: Henry Castro <hcas...@collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/71371
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>
    Reviewed-by: Jan Holesovsky <ke...@collabora.com>
    Tested-by: Jan Holesovsky <ke...@collabora.com>

diff --git a/loleaflet/src/control/Control.LokDialog.js 
b/loleaflet/src/control/Control.LokDialog.js
index c7917d8cb..56f0404d0 100644
--- a/loleaflet/src/control/Control.LokDialog.js
+++ b/loleaflet/src/control/Control.LokDialog.js
@@ -451,6 +451,30 @@ L.Control.LokDialog = L.Control.extend({
                                      // Keep map active while user is playing 
with window.
                                      this._map.lastActiveTime = Date.now();
                              }, this);
+               L.DomEvent.on(dlgInput, 'paste', function(e) {
+                       var clipboardData = e.clipboardData || 
window.clipboardData;
+                       var data, blob;
+
+                       L.DomEvent.preventDefault(e);
+                       if (clipboardData) {
+                               data = clipboardData.getData('text/plain') || 
clipboardData.getData('Text');
+                               if (data) {
+                                       var cmd = {
+                                               MimeType: {
+                                                       type: 'string',
+                                                       value: 
'mimetype=text/plain;charset=utf-8'
+                                               },
+                                               Data: {
+                                                       type: '[]byte',
+                                                       value: data
+                                               }
+                                       };
+
+                                       blob = new Blob(['windowcommand ' + id 
+ ' paste ', encodeURIComponent(JSON.stringify(cmd))]);
+                                       this._map._socket.sendMessage(blob);
+                               }
+                       }
+               }, this);
                L.DomEvent.on(dlgInput, 'contextmenu', function() {
                        return false;
                });
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to