OpenLayers OpenLayers

Ticket #774: patch.txt

File patch.txt, 2.2 kB (added by openlayers, 1 year ago)

patch file

Line 
1 Index: C:/projects/workspace/tschaub-feature/lib/OpenLayers/Control/DragPan.js
2 ===================================================================
3 --- C:/projects/workspace/tschaub-feature/lib/OpenLayers/Control/DragPan.js (revision 3330)
4 +++ C:/projects/workspace/tschaub-feature/lib/OpenLayers/Control/DragPan.js (working copy)
5 @@ -26,29 +26,26 @@
6      * @param {OpenLayers.Pixel} xy Pixel of the up position
7      */
8      panMap: function (xy) {
9 -        var deltaX = this.handler.start.x - xy.x;
10 -        var deltaY = this.handler.start.y - xy.y;
11 -        var size = this.map.getSize();
12 -        var newXY = new OpenLayers.Pixel(size.w / 2 + deltaX,
13 -                                         size.h / 2 + deltaY);
14 -        var newCenter = this.map.getLonLatFromViewPortPx( newXY );
15 -        this.map.setCenter(newCenter, null, true);
16 -        // this assumes xy won't be changed inside Handler.Drag
17 -        // a safe bet for now, and saves us the extra call to clone().
18 -        this.handler.start = xy;
19 +        this.panMapDone(xy, true);
20      },
21      
22      /**
23      * @param {OpenLayers.Pixel} xy Pixel of the up position
24 +    * @param {boolean} dragging true: this is a drag operation
25      */
26 -    panMapDone: function (xy) {
27 +    panMapDone: function (xy, dragging) {
28          var deltaX = this.handler.start.x - xy.x;
29          var deltaY = this.handler.start.y - xy.y;
30 -        var size = this.map.getSize();
31 -        var newXY = new OpenLayers.Pixel(size.w / 2 + deltaX,
32 -                                         size.h / 2 + deltaY);
33 -        var newCenter = this.map.getLonLatFromViewPortPx( newXY );
34 -        this.map.setCenter(newCenter, null, false);
35 +
36 +        // only trigger a move event if we are actually moving
37 +        if(deltaX || deltaY){
38 +           var size = this.map.getSize();
39 +           var newXY = new OpenLayers.Pixel(size.w / 2 + deltaX,
40 +                                            size.h / 2 + deltaY);
41 +           var newCenter = this.map.getLonLatFromViewPortPx( newXY );
42 +           this.map.setCenter(newCenter, null, dragging);
43 +       }
44 +       
45          // this assumes xy won't be changed inside Handler.Drag
46          // a safe bet for now, and saves us the extra call to clone().
47          this.handler.start = xy;