loleaflet/src/layer/tile/TileLayer.js |   24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

New commits:
commit 049633a6445084271ecd9cd0289d36de60068395
Author: Marco Cecchetti <marco.cecche...@collabora.com>
Date:   Thu Feb 18 15:30:19 2016 +0100

    loleaflet - user view does not follow the cell cursor
    
    Change-Id: I7e877847de0c2c644948b47daa0bff0e5f7da3a0
    Reviewed-on: https://gerrit.libreoffice.org/22489
    Reviewed-by: Jan Holesovsky <ke...@collabora.com>
    Tested-by: Jan Holesovsky <ke...@collabora.com>

diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index ad6567e..d3c1425 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -931,6 +931,30 @@ L.TileLayer = L.GridLayer.extend({
 
        _onUpdateCellCursor: function () {
                if (this._cellCursor && 
!this._isEmptyRectangle(this._cellCursor)) {
+                       var mapBounds = this._map.getBounds();
+                       if (!mapBounds.contains(this._cellCursor)) {
+                               var spacingX = 
Math.abs((this._cellCursor.getEast() - this._cellCursor.getWest())) / 4.0;
+                               var spacingY = 
Math.abs((this._cellCursor.getSouth() - this._cellCursor.getNorth())) / 4.0;
+                               var scrollX = 0, scrollY = 0;
+                               if (this._cellCursor.getWest() < 
mapBounds.getWest()) {
+                                       scrollX = this._cellCursor.getWest() - 
mapBounds.getWest() - spacingX;
+                               } else if (this._cellCursor.getEast() > 
mapBounds.getEast()) {
+                                       scrollX = this._cellCursor.getEast() - 
mapBounds.getEast() + spacingX;
+                               } else if (this._cellCursor.getNorth() > 
mapBounds.getNorth()) {
+                                       scrollY = this._cellCursor.getNorth() - 
mapBounds.getNorth() + spacingY;
+                               } else if (this._cellCursor.getSouth() < 
mapBounds.getSouth()) {
+                                       scrollY = this._cellCursor.getSouth() - 
mapBounds.getSouth() - spacingY;
+                               }
+                               var newCenter = mapBounds.getCenter();
+                               newCenter.lng += scrollX;
+                               newCenter.lat += scrollY;
+                               var center = this._map.project(newCenter);
+                               center = 
center.subtract(this._map.getSize().divideBy(2));
+                               center.x = Math.round(center.x < 0 ? 0 : 
center.x);
+                               center.y = Math.round(center.y < 0 ? 0 : 
center.y);
+                               this._map.fire('scrollto', {x: center.x, y: 
center.y});
+                       }
+
                        if (this._cellCursorMarker) {
                                this._map.removeLayer(this._cellCursorMarker);
                        }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to