loleaflet/src/layer/tile/GridLayer.js |   24 ++++--------
 loleaflet/src/layer/tile/TileLayer.js |   64 ++++++++++++++--------------------
 2 files changed, 37 insertions(+), 51 deletions(-)

New commits:
commit d2124f30781d1e9f553a44c4ec94ffd33ddf79d6
Author: Mihai Varga <mihai.m...@gmail.com>
Date:   Mon Jun 22 17:48:05 2015 +0300

    Fixed invalid tiles bounds

diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index 4093893..88bab85 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -306,6 +306,7 @@ L.TileLayer = L.GridLayer.extend({
                        var topLeftTwips = new L.Point(parseInt(strTwips[0]), 
parseInt(strTwips[1]));
                        var offset = new L.Point(parseInt(strTwips[2]), 
parseInt(strTwips[3]));
                        var bottomRightTwips = topLeftTwips.add(offset);
+                       var invalidBounds = new L.Bounds(topLeftTwips, 
bottomRightTwips);
 
                        this._map._fadeAnimated = false;
 
@@ -314,7 +315,7 @@ L.TileLayer = L.GridLayer.extend({
                                var point1 = this._coordsToTwips(coords);
                                var point2 = new L.Point(point1.x + 
this._tileWidthTwips, point1.y + this._tileHeightTwips);
                                var bounds = new L.Bounds(point1, point2);
-                               if (bounds.contains(topLeftTwips) || 
bounds.contains(bottomRightTwips)) {
+                               if (invalidBounds.intersects(bounds)) {
                                        this._map.socket.send('tile ' +
                                                                        'part=' 
+ coords.part + ' ' +
                                                                        
'width=' + this._tileSize + ' ' +
commit c5e950bb41795ada1d4d4097016c7289c77bb5db
Author: Mihai Varga <mihai.m...@gmail.com>
Date:   Mon Jun 22 17:45:43 2015 +0300

    Reverted ecfe65b37f9139403817431f36782a2ca57b7e02

diff --git a/loleaflet/src/layer/tile/GridLayer.js 
b/loleaflet/src/layer/tile/GridLayer.js
index afcdd38..48f11e1 100644
--- a/loleaflet/src/layer/tile/GridLayer.js
+++ b/loleaflet/src/layer/tile/GridLayer.js
@@ -488,11 +488,14 @@ L.GridLayer = L.Layer.extend({
                                this.fire('loading');
                        }
 
-                       // send the requests for tiles (requests only - they 
are not
-                       // created before we actually really get them from the 
server)
+                       // create DOM fragment to append tiles in one batch
+                       var fragment = document.createDocumentFragment();
+
                        for (i = 0; i < queue.length; i++) {
-                               this._addTile(queue[i]);
+                               this._addTile(queue[i], fragment);
                        }
+
+                       this._level.el.appendChild(fragment);
                }
        },
 
@@ -587,7 +590,7 @@ L.GridLayer = L.Layer.extend({
                }
        },
 
-       _addTileToMap: function (coords, fragment, bitmap_src) {
+       _addTile: function (coords, fragment) {
                var tilePos = this._getTilePos(coords),
                        key = this._tileCoordsToKey(coords);
                var tile = this.createTile(this._wrapCoords(coords), 
L.bind(this._tileReady, this, coords));
@@ -605,9 +608,6 @@ L.GridLayer = L.Layer.extend({
                // which is slow, and it also fixes gaps between tiles in Safari
                L.DomUtil.setPosition(tile, tilePos, true);
 
-               // set the bitmap data ('data:image/png;base64,...');
-               tile.src = bitmap_src;
-
                // save tile in cache
                this._tiles[key] = {
                        el: tile,
@@ -621,10 +621,6 @@ L.GridLayer = L.Layer.extend({
                        tile: tile,
                        coords: coords
                });
-       },
-
-       _addTile: function (coords) {
-               var key = this._tileCoordsToKey(coords);
 
                if (!this._tileCache[key]) {
                        if (this.options.useSocket && this._map.socket) {
@@ -640,9 +636,7 @@ L.GridLayer = L.Layer.extend({
                        }
                }
                else {
-                       var fragment = document.createDocumentFragment();
-                       this._addTileToMap(coords, fragment, 
this._tileCache[key]);
-                       this._level.el.appendChild(fragment);
+                       tile.src = this._tileCache[key];
                }
        },
 
diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index daf6539..4093893 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -366,10 +366,11 @@ L.TileLayer = L.GridLayer.extend({
                                strBytes += String.fromCharCode(data[i]);
                        }
 
-                       // setup the tile
-                       var fragment = document.createDocumentFragment();
-                       this._addTileToMap(coords, fragment, 
'data:image/png;base64,' + window.btoa(strBytes));
-                       this._level.el.appendChild(fragment);
+                       var key = this._tileCoordsToKey(coords);
+                       var tile = this._tiles[key];
+                       if (tile) {
+                               tile.el.src = 'data:image/png;base64,' + 
window.btoa(strBytes);
+                       }
                }
                else if (textMsg.startsWith('textselection:')) {
                        strTwips = textMsg.match(/\d+/g);
commit 9c73ddbd08538810d9d8569dbe18ab510ae9547e
Author: Mihai Varga <mihai.m...@gmail.com>
Date:   Mon Jun 22 17:45:10 2015 +0300

    Reverted 73974f7397414b0931b80729ea716387f3c6a130

diff --git a/loleaflet/src/layer/tile/GridLayer.js 
b/loleaflet/src/layer/tile/GridLayer.js
index c2d8b25..afcdd38 100644
--- a/loleaflet/src/layer/tile/GridLayer.js
+++ b/loleaflet/src/layer/tile/GridLayer.js
@@ -555,7 +555,7 @@ L.GridLayer = L.Layer.extend({
                // FIXME: this _tileCache is used for prev/next slide; but it is
                // dangerous in connection with typing / invalidation, so let's
                // comment it out for now
-               //this._tileCache[key] = tile.el.src;
+               this._tileCache[key] = tile.el.src;
 
                L.DomUtil.remove(tile.el);
                delete this._tiles[key];
diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index 63b8159..daf6539 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -301,39 +301,29 @@ L.TileLayer = L.GridLayer.extend({
 
                        this._onUpdateGraphicSelection();
                }
-               else if (textMsg.startsWith('invalidatetiles:')) {
-                       if (textMsg.match('EMPTY')) {
-                               // invalidate everything
-                               this.redraw();
-                               for (var key in this._tiles) {
-                                       this._addTile(this._tiles[key].coords);
-                               }
-                       }
-                       else {
-                               strTwips = textMsg.match(/\d+/g);
-
-                               // convert to bounds
-                               var topLeftTwips = new 
L.Point(parseInt(strTwips[0]), parseInt(strTwips[1]));
-                               var offset = new L.Point(parseInt(strTwips[2]), 
parseInt(strTwips[3]));
-                               var bottomRightTwips = topLeftTwips.add(offset);
-                               var invalidateBounds = new 
L.Bounds(topLeftTwips, bottomRightTwips);
-
-                               // FIXME - we want the fading when zooming, but 
not when
-                               // typing; we need to modify this so that we 
fade only
-                               // the tiles that do not exist yet
-                               this._map._fadeAnimated = false;
-
-                               for (var key in this._tiles) {
-                                       var coords = this._tiles[key].coords;
-                                       var point1 = 
this._coordsToTwips(coords);
-                                       var point2 = new L.Point(point1.x + 
this._tileWidthTwips, point1.y + this._tileHeightTwips);
-                                       var tileBounds = new L.Bounds(point1, 
point2);
+               else if (textMsg.startsWith('invalidatetiles:') && 
!textMsg.match('EMPTY')) {
+                       strTwips = textMsg.match(/\d+/g);
+                       var topLeftTwips = new L.Point(parseInt(strTwips[0]), 
parseInt(strTwips[1]));
+                       var offset = new L.Point(parseInt(strTwips[2]), 
parseInt(strTwips[3]));
+                       var bottomRightTwips = topLeftTwips.add(offset);
 
-                                       if 
(invalidateBounds.intersects(tileBounds)) {
-                                               this._addTile(coords);
-                                       }
+                       this._map._fadeAnimated = false;
+
+                       for (var key in this._tiles) {
+                               var coords = this._tiles[key].coords;
+                               var point1 = this._coordsToTwips(coords);
+                               var point2 = new L.Point(point1.x + 
this._tileWidthTwips, point1.y + this._tileHeightTwips);
+                               var bounds = new L.Bounds(point1, point2);
+                               if (bounds.contains(topLeftTwips) || 
bounds.contains(bottomRightTwips)) {
+                                       this._map.socket.send('tile ' +
+                                                                       'part=' 
+ coords.part + ' ' +
+                                                                       
'width=' + this._tileSize + ' ' +
+                                                                       
'height=' + this._tileSize + ' ' +
+                                                                       
'tileposx=' + point1.x + ' '    +
+                                                                       
'tileposy=' + point1.y + ' ' +
+                                                                       
'tilewidth=' + this._tileWidthTwips + ' ' +
+                                                                       
'tileheight=' + this._tileHeightTwips);
                                }
-                               this._update();
                        }
                }
                else if (textMsg.startsWith('status:')) {
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to