loleaflet/src/layer/tile/TileLayer.js |   11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

New commits:
commit 4e92ed56056652c9f654dc649587bd51c92bfc48
Author: Marco Cecchetti <[email protected]>
Date:   Wed Dec 13 18:09:36 2017 +0100

    calc: do not scroll to cell cursor when position is not changed
    
    Old behaviour: when a cell cursor message is handled the document is
    always scrolled in order to make the cell cursor visible.
    
    New behaviour: as the old one except when the position of the cell
    cursor is unchanged: in that case no scroll occurs.
    
    Change-Id: Iee9b8e2d9fc8cb72d0292fb48a20cadeedeb015b
    Reviewed-on: https://gerrit.libreoffice.org/46535
    Reviewed-by: Marco Cecchetti <[email protected]>
    Tested-by: Marco Cecchetti <[email protected]>
    (cherry picked from commit 9e72b2257b6083c40db8c96bb6d70ba11cdbbe03)
    Reviewed-on: https://gerrit.libreoffice.org/49018
    Reviewed-by: Samuel Mehrbrodt <[email protected]>
    Tested-by: Samuel Mehrbrodt <[email protected]>

diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index 109569ce..7b549812 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -624,6 +624,13 @@ L.TileLayer = L.GridLayer.extend({
                if (!this._prevCellCursor) {
                        this._prevCellCursor = L.LatLngBounds.createDefault();
                }
+               if (!this._cellCursorXY) {
+                       this._cellCursorXY = new L.Point(-1, -1);
+               }
+               if (!this._prevCellCursorXY) {
+                       this._prevCellCursorXY = new L.Point(-1, -1);
+               }
+
                if (textMsg.match('EMPTY')) {
                        this._cellCursorTwips = new L.Bounds(new L.Point(0, 0), 
new L.Point(0, 0));
                        this._cellCursor = L.LatLngBounds.createDefault();
@@ -637,6 +644,7 @@ L.TileLayer = L.GridLayer.extend({
                        this._cellCursor = new L.LatLngBounds(
                                                        
this._twipsToLatLng(topLeftTwips, this._map.getZoom()),
                                                        
this._twipsToLatLng(bottomRightTwips, this._map.getZoom()));
+                       this._cellCursorXY = new L.Point(parseInt(strTwips[4]), 
parseInt(strTwips[5]));
                }
 
                var horizontalDirection = 0;
@@ -1588,7 +1596,7 @@ L.TileLayer = L.GridLayer.extend({
        _onUpdateCellCursor: function (horizontalDirection, verticalDirection, 
onPgUpDn) {
                if (this._cellCursor && 
!this._isEmptyRectangle(this._cellCursor)) {
                        var mapBounds = this._map.getBounds();
-                       if (!mapBounds.contains(this._cellCursor)) {
+                       if (!mapBounds.contains(this._cellCursor) && 
!this._cellCursorXY.equals(this._prevCellCursorXY)) {
                                var scrollX = 0, scrollY = 0;
                                if (onPgUpDn) {
                                        var mapHalfHeight = 
(mapBounds.getNorth() - mapBounds.getSouth()) / 2;
@@ -1626,6 +1634,7 @@ L.TileLayer = L.GridLayer.extend({
                                        center.y = Math.round(center.y < 0 ? 0 
: center.y);
                                        this._map.fire('scrollto', {x: 
center.x, y: center.y});
                                }
+                               this._prevCellCursorXY = this._cellCursorXY;
                        }
 
                        if (onPgUpDn) {
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to