loleaflet/build/deps.js                |    7 +
 loleaflet/src/layer/tile/TileLayer.js  |  109 ---------------------------
 loleaflet/src/map/handler/Map.Mouse.js |  131 +++++++++++++++++++++++++++++++++
 3 files changed, 137 insertions(+), 110 deletions(-)

New commits:
commit e8eedf3f258300bc54c0074cd56a26ee821d4ad9
Author: Mihai Varga <mihai.va...@collabora.com>
Date:   Thu Jul 16 16:15:30 2015 +0300

    loleaflet: moved mouse handler from TileLayer.js -> Map.Mouse.js

diff --git a/loleaflet/build/deps.js b/loleaflet/build/deps.js
index c5927ba..a3d0ee9 100644
--- a/loleaflet/build/deps.js
+++ b/loleaflet/build/deps.js
@@ -192,7 +192,12 @@ var deps = {
 
        Keyboard: {
                src: ['map/handler/Map.Keyboard.js'],
-               desc: 'Enables keyboard pan/zoom when the map is focused.'
+               desc: 'Handles keyboard interaction with the document.'
+       },
+
+       Mouse: {
+               src: ['map/handler/Map.Mouse.js'],
+               desc: 'Handles mouse interaction with the document.'
        },
 
        MarkerDrag: {
diff --git a/loleaflet/src/layer/tile/TileLayer.js 
b/loleaflet/src/layer/tile/TileLayer.js
index e7af468..ac74511 100644
--- a/loleaflet/src/layer/tile/TileLayer.js
+++ b/loleaflet/src/layer/tile/TileLayer.js
@@ -89,7 +89,6 @@ L.TileLayer = L.GridLayer.extend({
                        }),
                        draggable: true
                });
-               this._mouseEventsQueue = [];
                this._pendingTilesCount = 0;
                this._textArea = L.DomUtil.get('clipboard');
                this._textArea.focus();
@@ -110,8 +109,6 @@ L.TileLayer = L.GridLayer.extend({
                this._map.on('clearselection', this._clearSelections, this);
                this._map.on('drag', this._updateScrollOffset, this);
                this._map.on('copy', this._onCopy, this);
-               this._map.on('mousedown mouseup mouseover mouseout mousemove 
dblclick',
-                               this._onMouseEvent, this);
                this._startMarker.on('drag dragend', 
this._onSelectionHandleDrag, this);
                this._endMarker.on('drag dragend', this._onSelectionHandleDrag, 
this);
                if (this.options.edit && !this.options.readOnly) {
@@ -679,113 +676,7 @@ L.TileLayer = L.GridLayer.extend({
                                ' x=' + x + ' y=' + y);
        },
 
-       _onMouseEvent: function (e) {
-               if (this._graphicMarker && this._graphicMarker.isDragged) {
-                       return;
-               }
-
-               if (this._startMarker.isDragged === true || 
this._endMarker.isDragged === true) {
-                       return;
-               }
-
-               if (e.type === 'mousedown') {
-                       this._mouseDown = true;
-                       if (this._holdMouseEvent) {
-                               clearTimeout(this._holdMouseEvent);
-                       }
-                       var mousePos = this._latLngToTwips(e.latlng);
-                       this._mouseEventsQueue.push(L.bind(function() {
-                               this._postMouseEvent('buttondown', mousePos.x, 
mousePos.y, 1);}, this));
-                       this._holdMouseEvent = 
setTimeout(L.bind(this._executeMouseEvents, this), 500);
-               }
-               else if (e.type === 'mouseup') {
-                       this._mouseDown = false;
-                       if (this._map.dragging.enabled()) {
-                               if (this._mouseEventsQueue.length === 0) {
-                                       // mouse up after panning
-                                       return;
-                               }
-                       }
-                       clearTimeout(this._holdMouseEvent);
-                       this._holdMouseEvent = null;
-                       if (this._clickTime && Date.now() - this._clickTime <= 
250) {
-                               // double click, a click was sent already
-                               this._mouseEventsQueue = [];
-                               return;
-                       }
-                       else {
-                               this._clickTime = Date.now();
-                               mousePos = this._latLngToTwips(e.latlng);
-                               var timeOut = 250;
-                               if (this._permission === 'edit') {
-                                       timeOut = 0;
-                               }
-                               this._mouseEventsQueue.push(L.bind(function() {
-                                       // if it's a click or mouseup after 
selecting
-                                       if (this._mouseEventsQueue.length > 1) {
-                                               // it's a click, fire mousedown
-                                               this._mouseEventsQueue[0]();
-                                               if (this._permission === 
'view') {
-                                                       
this._map.setPermission('edit');
-                                               }
-                                       }
-                                       this._mouseEventsQueue = [];
-                                       this._postMouseEvent('buttonup', 
mousePos.x, mousePos.y, 1);
-                                       this._textArea.focus();
-                               }, this));
-                               this._holdMouseEvent = 
setTimeout(L.bind(this._executeMouseEvents, this), timeOut);
-
-                               if (this._startMarker._icon) {
-                                       
L.DomUtil.removeClass(this._startMarker._icon, 'leaflet-not-clickable');
-                               }
-                               if (this._endMarker._icon) {
-                                       
L.DomUtil.removeClass(this._endMarker._icon, 'leaflet-not-clickable');
-                               }
-                       }
-               }
-               else if (e.type === 'mousemove' && this._mouseDown) {
-                       if (this._holdMouseEvent) {
-                               clearTimeout(this._holdMouseEvent);
-                               this._holdMouseEvent = null;
-                               if (this._map.dragging.enabled()) {
-                                       // The user just panned the document
-                                       this._mouseEventsQueue = [];
-                                       return;
-                               }
-                               for (var i = 0; i < 
this._mouseEventsQueue.length; i++) {
-                                       // synchronously execute old mouse 
events so we know that
-                                       // they arrive to the server before the 
move command
-                                       this._mouseEventsQueue[i]();
-                               }
-                               this._mouseEventsQueue = [];
-                       }
-                       if (!this._map.dragging.enabled()) {
-                               mousePos = this._latLngToTwips(e.latlng);
-                               this._postMouseEvent('move', mousePos.x, 
mousePos.y, 1);
-                               if (this._startMarker._icon) {
-                                       
L.DomUtil.addClass(this._startMarker._icon, 'leaflet-not-clickable');
-                               }
-                               if (this._endMarker._icon) {
-                                       
L.DomUtil.addClass(this._endMarker._icon, 'leaflet-not-clickable');
-                               }
-                       }
-               }
-               else if (e.type === 'dblclick') {
-                       mousePos = this._latLngToTwips(e.latlng);
-                       this._postMouseEvent('buttondown', mousePos.x, 
mousePos.y, 1);
-                       this._postMouseEvent('buttondown', mousePos.x, 
mousePos.y, 2);
-                       this._postMouseEvent('buttonup', mousePos.x, 
mousePos.y, 2);
-                       this._postMouseEvent('buttonup', mousePos.x, 
mousePos.y, 1);
-               }
-       },
 
-       _executeMouseEvents: function () {
-               this._holdMouseEvent = null;
-               for (var i = 0; i < this._mouseEventsQueue.length; i++) {
-                       this._mouseEventsQueue[i]();
-               }
-               this._mouseEventsQueue = [];
-       },
 
        // Is rRectangle empty?
        _isEmptyRectangle: function (aBounds) {
diff --git a/loleaflet/src/map/handler/Map.Mouse.js 
b/loleaflet/src/map/handler/Map.Mouse.js
new file mode 100644
index 0000000..270bdb2
--- /dev/null
+++ b/loleaflet/src/map/handler/Map.Mouse.js
@@ -0,0 +1,131 @@
+/*
+ * L.Map.Mouse is handling mouse interaction with the document
+ */
+
+L.Map.mergeOptions({
+       mouse: true,
+});
+
+L.Map.Mouse = L.Handler.extend({
+
+       initialize: function (map) {
+               this._map = map;
+               this._mouseEventsQueue = [];
+       },
+
+       addHooks: function () {
+               this._map.on('mousedown mouseup mouseover mouseout mousemove 
dblclick',
+                       this._onMouseEvent, this);
+       },
+
+       _onMouseEvent: function (e) {
+               var docLayer = this._map._docLayer;
+               if (docLayer._graphicMarker && 
docLayer._graphicMarker.isDragged) {
+                       return;
+               }
+
+               if (docLayer._startMarker.isDragged === true || 
docLayer._endMarker.isDragged === true) {
+                       return;
+               }
+
+               if (e.type === 'mousedown') {
+                       this._mouseDown = true;
+                       if (this._holdMouseEvent) {
+                               clearTimeout(this._holdMouseEvent);
+                       }
+                       var mousePos = docLayer._latLngToTwips(e.latlng);
+                       this._mouseEventsQueue.push(L.bind(function() {
+                               docLayer._postMouseEvent('buttondown', 
mousePos.x, mousePos.y, 1);}, docLayer));
+                       this._holdMouseEvent = 
setTimeout(L.bind(this._executeMouseEvents, this), 500);
+               }
+               else if (e.type === 'mouseup') {
+                       this._mouseDown = false;
+                       if (this._map.dragging.enabled()) {
+                               if (this._mouseEventsQueue.length === 0) {
+                                       // mouse up after panning
+                                       return;
+                               }
+                       }
+                       clearTimeout(this._holdMouseEvent);
+                       this._holdMouseEvent = null;
+                       if (this._clickTime && Date.now() - this._clickTime <= 
250) {
+                               // double click, a click was sent already
+                               this._mouseEventsQueue = [];
+                               return;
+                       }
+                       else {
+                               this._clickTime = Date.now();
+                               mousePos = docLayer._latLngToTwips(e.latlng);
+                               var timeOut = 250;
+                               if (docLayer._permission === 'edit') {
+                                       timeOut = 0;
+                               }
+                               this._mouseEventsQueue.push(L.bind(function() {
+                                       // if it's a click or mouseup after 
selecting
+                                       if (this._mouseEventsQueue.length > 1) {
+                                               // it's a click, fire mousedown
+                                               this._mouseEventsQueue[0]();
+                                               if (docLayer._permission === 
'view') {
+                                                       
docLayer._map.setPermission('edit');
+                                               }
+                                       }
+                                       this._mouseEventsQueue = [];
+                                       docLayer._postMouseEvent('buttonup', 
mousePos.x, mousePos.y, 1);
+                                       docLayer._textArea.focus();
+                               }, this, docLayer));
+                               this._holdMouseEvent = 
setTimeout(L.bind(this._executeMouseEvents, this), timeOut);
+
+                               if (docLayer._startMarker._icon) {
+                                       
L.DomUtil.removeClass(docLayer._startMarker._icon, 'leaflet-not-clickable');
+                               }
+                               if (docLayer._endMarker._icon) {
+                                       
L.DomUtil.removeClass(docLayer._endMarker._icon, 'leaflet-not-clickable');
+                               }
+                       }
+               }
+               else if (e.type === 'mousemove' && this._mouseDown) {
+                       if (this._holdMouseEvent) {
+                               clearTimeout(this._holdMouseEvent);
+                               this._holdMouseEvent = null;
+                               if (this._map.dragging.enabled()) {
+                                       // The user just panned the document
+                                       this._mouseEventsQueue = [];
+                                       return;
+                               }
+                               for (var i = 0; i < 
this._mouseEventsQueue.length; i++) {
+                                       // synchronously execute old mouse 
events so we know that
+                                       // they arrive to the server before the 
move command
+                                       this._mouseEventsQueue[i]();
+                               }
+                               this._mouseEventsQueue = [];
+                       }
+                       if (!this._map.dragging.enabled()) {
+                               mousePos = docLayer._latLngToTwips(e.latlng);
+                               docLayer._postMouseEvent('move', mousePos.x, 
mousePos.y, 1);
+                               if (docLayer._startMarker._icon) {
+                                       
L.DomUtil.addClass(docLayer._startMarker._icon, 'leaflet-not-clickable');
+                               }
+                               if (docLayer._endMarker._icon) {
+                                       
L.DomUtil.addClass(docLayer._endMarker._icon, 'leaflet-not-clickable');
+                               }
+                       }
+               }
+               else if (e.type === 'dblclick') {
+                       mousePos = docLayer._latLngToTwips(e.latlng);
+                       docLayer._postMouseEvent('buttondown', mousePos.x, 
mousePos.y, 1);
+                       docLayer._postMouseEvent('buttondown', mousePos.x, 
mousePos.y, 2);
+                       docLayer._postMouseEvent('buttonup', mousePos.x, 
mousePos.y, 2);
+                       docLayer._postMouseEvent('buttonup', mousePos.x, 
mousePos.y, 1);
+               }
+       },
+
+       _executeMouseEvents: function () {
+               this._holdMouseEvent = null;
+               for (var i = 0; i < this._mouseEventsQueue.length; i++) {
+                       this._mouseEventsQueue[i]();
+               }
+               this._mouseEventsQueue = [];
+       }
+});
+
+L.Map.addInitHook('addHandler', 'mouse', L.Map.Mouse);
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to