[Libreoffice-commits] online.git: Branch 'distro/collabora/collabora-online-4' - loleaflet/plugins loleaflet/src
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Tue Feb 26 08:20:16 UTC 2019
loleaflet/plugins/path-transform/src/Path.Drag.js | 9 +++++--
loleaflet/src/layer/tile/TileLayer.js | 5 ++++
loleaflet/src/layer/vector/SVGGroup.js | 26 +++++++++++++++++++---
3 files changed, 35 insertions(+), 5 deletions(-)
New commits:
commit bbb6d34ac20efc3c05dc6dcd508962091f99fd52
Author: Marco Cecchetti <mrcekets at gmail.com>
AuthorDate: Sun Feb 24 17:59:16 2019 +0100
Commit: Szymon Kłos <szymon.klos at collabora.com>
CommitDate: Tue Feb 26 09:19:57 2019 +0100
online: calc: selecting a chart element; impress: move caret by clicking
Clicking on individual chart elements doesn't select any object.
Better forwarding of single click when there is no drag action.
Start to display the svg preview for moved shapes images on first
mousemove event instead of mousedown. For text object, on editing,
this avoids to see the old text content when user clicks for changing
the cursor position.
This patch solve also the following impress issue: moving caret around
in text box by clicking around doesn't work
Change-Id: I316c7a92667bda8fa1e115bcc848b474cbc40242
Reviewed-on: https://gerrit.libreoffice.org/68314
Reviewed-by: Szymon Kłos <szymon.klos at collabora.com>
Tested-by: Szymon Kłos <szymon.klos at collabora.com>
diff --git a/loleaflet/plugins/path-transform/src/Path.Drag.js b/loleaflet/plugins/path-transform/src/Path.Drag.js
index 36acdd8b1..04ab67373 100644
--- a/loleaflet/plugins/path-transform/src/Path.Drag.js
+++ b/loleaflet/plugins/path-transform/src/Path.Drag.js
@@ -107,6 +107,7 @@ L.Handler.PathDrag = L.Handler.extend(/** @lends L.Path.Drag.prototype */ {
_onDragStart: function(evt) {
var eventType = evt.originalEvent._simulated ? 'touchstart' : evt.originalEvent.type;
+ this._mouseDown = evt.originalEvent;
this._mapDraggingWasEnabled = false;
this._startPoint = evt.containerPoint.clone();
this._dragStartPoint = evt.containerPoint.clone();
@@ -184,6 +185,7 @@ L.Handler.PathDrag = L.Handler.extend(/** @lends L.Path.Drag.prototype */ {
* @param {L.MouseEvent} evt
*/
_onDragEnd: function(evt) {
+ L.DomEvent.stop(evt);
var containerPoint = this._path._map.mouseEventToContainerPoint(evt);
var moved = this.moved();
@@ -193,8 +195,6 @@ L.Handler.PathDrag = L.Handler.extend(/** @lends L.Path.Drag.prototype */ {
this._path._updatePath();
this._path._project();
this._path._transform(null);
-
- L.DomEvent.stop(evt);
}
L.DomEvent.off(document, 'mousemove touchmove', this._onDrag, this);
@@ -226,6 +226,11 @@ L.Handler.PathDrag = L.Handler.extend(/** @lends L.Path.Drag.prototype */ {
if (moved) L.DomEvent._fakeStop({ type: 'click' });
this._path._map.dragging.enable();
}
+
+ if (!moved) {
+ this._path._map._handleDOMEvent(this._mouseDown);
+ this._path._map._handleDOMEvent(evt)
+ }
},
diff --git a/loleaflet/src/layer/tile/TileLayer.js b/loleaflet/src/layer/tile/TileLayer.js
index 70a5bf376..6ac7ad501 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -1815,6 +1815,11 @@ L.TileLayer = L.GridLayer.extend({
}
else if (e.type === 'graphicmoveend') {
var deltaPos = aPos.subtract(this._graphicMarker._startPos);
+ if (deltaPos.x === 0 && deltaPos.y === 0) {
+ this._graphicMarker.isDragged = false;
+ return;
+ }
+
var newPos = this._graphicSelectionTwips.min.add(deltaPos);
var size = this._graphicSelectionTwips.getSize();
diff --git a/loleaflet/src/layer/vector/SVGGroup.js b/loleaflet/src/layer/vector/SVGGroup.js
index c9548e347..c719a7b1a 100644
--- a/loleaflet/src/layer/vector/SVGGroup.js
+++ b/loleaflet/src/layer/vector/SVGGroup.js
@@ -42,8 +42,9 @@ L.SVGGroup = L.Layer.extend({
_onDragStart: function(evt) {
if (!this._dragShape)
return;
+ this._moved = false;
- this._showEmbeddedSVG();
+ L.DomEvent.on(this._dragShape, 'mousemove', this._onDrag, this);
L.DomEvent.on(this._dragShape, 'mouseup', this._onDragEnd, this);
var data = {
@@ -56,16 +57,35 @@ L.SVGGroup = L.Layer.extend({
this.fire('graphicmovestart', {pos: pos});
},
- _onDragEnd: function(evt) {
+ _onDrag: function(evt) {
if (!this._dragShape)
return;
+ if (!this._moved) {
+ this._moved = true;
+ this._showEmbeddedSVG();
+ }
+
+ var data = {
+ originalEvent: evt,
+ containerPoint: this._map.mouseEventToContainerPoint(evt)
+ };
+ this.dragging._onDrag(data);
+
+ },
+
+ _onDragEnd: function(evt) {
+ if (!this._dragShape)
+ return;
+ L.DomEvent.off(this._dragShape, 'mousemove', this._onDrag, this);
L.DomEvent.off(this._dragShape, 'mouseup', this._onDragEnd, this);
- this.dragging._onDragEnd(evt);
+ this._moved = false;
this._hideEmbeddedSVG();
var pos = this._map.mouseEventToLatLng(evt);
this.fire('graphicmoveend', {pos: pos});
+
+ this.dragging._onDragEnd(evt);
},
bringToFront: function () {
More information about the Libreoffice-commits
mailing list