loleaflet/src/layer/tile/TileLayer.js         |   21 +++++++++++++++++----
 loleaflet/src/map/handler/Map.StateChanges.js |   11 +++++++++--
 2 files changed, 26 insertions(+), 6 deletions(-)

New commits:
commit d13164a80c1b49e3f79732b720a9918d7a413052
Author:     Szymon Kłos <[email protected]>
AuthorDate: Fri Nov 22 13:28:49 2019 +0100
Commit:     Szymon Kłos <[email protected]>
CommitDate: Wed Nov 27 10:56:57 2019 +0100

    jsdialogs: parse SfxPoolItems JSON
    
    Change-Id: I15fc16dbc74977a848d6cfbeea3facdbac286c22
    Reviewed-on: https://gerrit.libreoffice.org/83857
    Reviewed-by: Szymon Kłos <[email protected]>
    Tested-by: Szymon Kłos <[email protected]>

diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index 707a4d601..25cf5ba5a 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -1444,10 +1444,23 @@ L.TileLayer = L.GridLayer.extend({
 
        _onStateChangedMsg: function (textMsg) {
                textMsg = textMsg.substr(14);
-               var index = textMsg.indexOf('=');
-               var commandName = index !== -1 ? textMsg.substr(0, index) : '';
-               var state = index !== -1 ? textMsg.substr(index + 1) : '';
-               this._map.fire('commandstatechanged', {commandName : 
commandName, state : state});
+
+               var isPureJSON = textMsg.indexOf('=') === -1 && 
textMsg.indexOf('{') !== -1;
+               if (isPureJSON) {
+                       var json = JSON.parse(textMsg);
+
+                       for (var i = 0; i < json.items.length; i++) {
+                               var item = json.items[i];
+                               if (item.which && item.data) {
+                                       this._map.fire('commandstatechanged', 
{commandName: item.which, state: item.data});
+                               }
+                       }
+               } else {
+                       var index = textMsg.indexOf('=');
+                       var commandName = index !== -1 ? textMsg.substr(0, 
index) : '';
+                       var state = index !== -1 ? textMsg.substr(index + 1) : 
'';
+                       this._map.fire('commandstatechanged', {commandName : 
commandName, state : state});
+               }
        },
 
        _onUnoCommandResultMsg: function (textMsg) {
diff --git a/loleaflet/src/map/handler/Map.StateChanges.js 
b/loleaflet/src/map/handler/Map.StateChanges.js
index 060a48cfe..6afcd642c 100644
--- a/loleaflet/src/map/handler/Map.StateChanges.js
+++ b/loleaflet/src/map/handler/Map.StateChanges.js
@@ -28,8 +28,15 @@ L.Map.StateChangeHandler = L.Handler.extend({
 
        _onStateChanged: function(e) {
                var slideMasterPageItem = 
this._map['stateChangeHandler'].getItemValue('.uno:SlideMasterPage');
-               var index = e.state.indexOf('{');
-               var state = index !== -1 ? JSON.parse(e.state.substring(index)) 
: e.state;
+               var state;
+
+               if (typeof(e.state == 'object')) {
+                       state = e.state;
+               } else if (typeof(e.state == 'string')) {
+                       var index = e.state.indexOf('{');
+                       state = index !== -1 ? 
JSON.parse(e.state.substring(index)) : e.state;
+               }
+
                this._items[e.commandName] = state;
                if (e.commandName === '.uno:CurrentTrackedChangeId') {
                        var redlineId = 'change-' + state;
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to