[Libreoffice-commits] online.git: loleaflet/src
Dennis Francis (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jul 8 14:52:35 UTC 2020
loleaflet/src/control/Control.Scale.js | 4 +-
loleaflet/src/map/Map.js | 62 +++++++++++++++++++++++++++++++--
2 files changed, 61 insertions(+), 5 deletions(-)
New commits:
commit d58cf803773db8362e784f1bda7cb4cbc0466ba6
Author: Dennis Francis <dennis.francis at collabora.com>
AuthorDate: Tue Jul 7 13:45:59 2020 +0530
Commit: Dennis Francis <dennis.francis at collabora.com>
CommitDate: Wed Jul 8 16:52:16 2020 +0200
split-panes: respect split position when...
converting to/from container coordinates. Also introduce the
corresponding 'IgnoreSplits' versions of changed methods because they
are needed for repositioning the map-view which is independent of the splits
position. They are also needed for stuff outside the map which need not
be aware of the splits.
Change-Id: I9044a185e5762fa4c4866590e1b7cf456fb2d1dd
Reviewed-on: https://gerrit.libreoffice.org/c/online/+/98352
Tested-by: Jenkins
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice at gmail.com>
Reviewed-by: Dennis Francis <dennis.francis at collabora.com>
diff --git a/loleaflet/src/control/Control.Scale.js b/loleaflet/src/control/Control.Scale.js
index 403c88f7c..a3e15406a 100644
--- a/loleaflet/src/control/Control.Scale.js
+++ b/loleaflet/src/control/Control.Scale.js
@@ -43,8 +43,8 @@ L.Control.Scale = L.Control.extend({
y = map.getSize().y / 2;
var maxMeters = L.CRS.Earth.distance(
- map.containerPointToLatLng([0, y]),
- map.containerPointToLatLng([this.options.maxWidth, y]));
+ map.containerPointToLatLngIgnoreSplits([0, y]),
+ map.containerPointToLatLngIgnoreSplits([this.options.maxWidth, y]));
this._updateScales(maxMeters);
},
diff --git a/loleaflet/src/map/Map.js b/loleaflet/src/map/Map.js
index b6027ffc4..b4be77964 100644
--- a/loleaflet/src/map/Map.js
+++ b/loleaflet/src/map/Map.js
@@ -504,10 +504,10 @@ L.Map = L.Evented.extend({
setZoomAround: function (latlng, zoom, options) {
var scale = this.getZoomScale(zoom),
viewHalf = this.getSize().divideBy(2),
- containerPoint = latlng instanceof L.Point ? latlng : this.latLngToContainerPoint(latlng),
+ containerPoint = latlng instanceof L.Point ? latlng : this.latLngToContainerPointIgnoreSplits(latlng),
centerOffset = containerPoint.subtract(viewHalf).multiplyBy(1 - 1 / scale),
- newCenter = this.containerPointToLatLng(viewHalf.add(centerOffset));
+ newCenter = this.containerPointToLatLngIgnoreSplits(viewHalf.add(centerOffset));
return this.setView(newCenter, zoom, {zoom: options});
},
@@ -913,10 +913,57 @@ L.Map = L.Evented.extend({
},
containerPointToLayerPoint: function (point) { // (Point)
+ if (!this._splitPanesContext) {
+ return this.containerPointToLayerPointIgnoreSplits(point);
+ }
+ var splitPos = this._splitPanesContext.getSplitPos();
+ var pixelOrigin = this.getPixelOrigin();
+ var mapPanePos = this._getMapPanePos();
+ var result = L.point(point);
+ if (point.x <= splitPos.x) {
+ result.x -= pixelOrigin.x;
+ }
+ else {
+ result.x -= mapPanePos.x;
+ }
+
+ if (point.y <= splitPos.y) {
+ result.y -= pixelOrigin.y;
+ }
+ else {
+ result.y -= mapPanePos.y;
+ }
+
+ return result;
+ },
+
+ containerPointToLayerPointIgnoreSplits: function (point) { // (Point)
return L.point(point).subtract(this._getMapPanePos());
},
layerPointToContainerPoint: function (point) { // (Point)
+
+ if (!this._splitPanesContext) {
+ return this.layerPointToContainerPointIgnoreSplits(point);
+ }
+
+ var splitPos = this._splitPanesContext.getSplitPos();
+ var pixelOrigin = this.getPixelOrigin();
+ var mapPanePos = this._getMapPanePos();
+ var result = L.point(point)._add(pixelOrigin);
+
+ if (result.x > splitPos.x) {
+ result.x -= (pixelOrigin.x - mapPanePos.x);
+ }
+
+ if (result.y > splitPos.y) {
+ result.y -= (pixelOrigin.y - mapPanePos.y);
+ }
+
+ return result;
+ },
+
+ layerPointToContainerPointIgnoreSplits: function (point) { // (Point)
return L.point(point).add(this._getMapPanePos());
},
@@ -925,6 +972,15 @@ L.Map = L.Evented.extend({
return this.layerPointToLatLng(layerPoint);
},
+ containerPointToLatLngIgnoreSplits: function (point) {
+ var layerPoint = this.containerPointToLayerPointIgnoreSplits(L.point(point));
+ return this.layerPointToLatLng(layerPoint);
+ },
+
+ latLngToContainerPointIgnoreSplits: function (latlng) {
+ return this.layerPointToContainerPointIgnoreSplits(this.latLngToLayerPoint(L.latLng(latlng)));
+ },
+
latLngToContainerPoint: function (latlng) {
return this.layerPointToContainerPoint(this.latLngToLayerPoint(L.latLng(latlng)));
},
@@ -1624,7 +1680,7 @@ L.Map = L.Evented.extend({
// layer point of the current center
_getCenterLayerPoint: function () {
- return this.containerPointToLayerPoint(this.getSize()._divideBy(2));
+ return this.containerPointToLayerPointIgnoreSplits(this.getSize()._divideBy(2));
},
// offset of the specified place to the current center in pixels
More information about the Libreoffice-commits
mailing list