Advertisement
Guest User

Untitled

a guest
Sep 22nd, 2017
44
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Diff 2.83 KB | None | 0 0
  1. Index: C:/ms4w/Apache/htdocs/keilavesi/lib/OpenLayers/Handler/Drag.js
  2. ===================================================================
  3. --- C:/ms4w/Apache/htdocs/keilavesi/lib/OpenLayers/Handler/Drag.js  (revision 600)
  4. +++ C:/ms4w/Apache/htdocs/keilavesi/lib/OpenLayers/Handler/Drag.js  (working copy)
  5. @@ -189,6 +189,10 @@
  6.          var propagate = true;
  7.          this.dragging = false;
  8.          if (this.checkModifiers(evt) && OpenLayers.Event.isLeftClick(evt)) {
  9. +            this.downEvt = OpenLayers.Util.extend({}, evt);
  10. +            delete this.downEvt.preventDefault;
  11. +            delete this.downEvt.stopPropagation;
  12. +            
  13.              this.started = true;
  14.              this.start = evt.xy;
  15.              this.last = evt.xy;
  16. @@ -269,6 +273,7 @@
  17.       * {Boolean} Let the event propagate.
  18.       */
  19.      mouseup: function (evt) {
  20. +        var propagate = true;
  21.          if (this.started) {
  22.              if(this.documentDrag === true && this.documentEvents) {
  23.                  this.adjustXY(evt);
  24. @@ -284,12 +289,29 @@
  25.              this.callback("up", [evt.xy]);
  26.              if(dragged) {
  27.                  this.callback("done", [evt.xy]);
  28. +            } else {
  29. +                this.replayClickSequence();
  30. +                propagate = false;
  31.              }
  32.              document.onselectstart = this.oldOnselectstart;
  33.          }
  34. -        return true;
  35. +        return propagate;
  36.      },
  37.  
  38. +    replayClickSequence: function() {
  39. +        this.map.events.injectEventLower(this.downEvt.type, this.downEvt, this);
  40. +
  41. +        var upEvt = OpenLayers.Util.extend({}, this.downEvt);
  42. +        upEvt.type = 'mouseup';
  43. +        this.map.events.injectEventLower(upEvt.type, upEvt, this);
  44. +
  45. +        var clickEvt = OpenLayers.Util.extend({}, this.downEvt);
  46. +        clickEvt.type = 'click';
  47. +        this.map.events.injectEventLower(clickEvt.type, clickEvt, this);
  48. +
  49. +        this.downEvt = null;
  50. +    },
  51. +
  52.      /**
  53.       * Method: mouseout
  54.       * Handle mouseout events
  55. @@ -301,6 +323,7 @@
  56.       * {Boolean} Let the event propagate.
  57.       */
  58.      mouseout: function (evt) {
  59. +        var propagate = true;
  60.          if (this.started && OpenLayers.Util.mouseLeft(evt, this.map.div)) {
  61.              if(this.documentDrag === true) {
  62.                  this.documentEvents = new OpenLayers.Events(this, document,
  63. @@ -323,13 +346,16 @@
  64.                  this.callback("out", []);
  65.                  if(dragged) {
  66.                      this.callback("done", [evt.xy]);
  67. +                } else {
  68. +                    this.replayClickSequence();
  69. +                    propagate = false;
  70.                  }
  71.                  if(document.onselectstart) {
  72.                      document.onselectstart = this.oldOnselectstart;
  73.                  }
  74.              }
  75.          }
  76. -        return true;
  77. +        return propagate;
  78.      },
  79.  
  80.      /**
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement