branch: externals/osm
commit 21e59942a9dcbfdbb790341798bec79bec898710
Author: Daniel Mendler <m...@daniel-mendler.de>
Commit: Daniel Mendler <m...@daniel-mendler.de>

    Handle mouse drag event
---
 osm.el | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/osm.el b/osm.el
index a281c2feff..0cc50e41e4 100644
--- a/osm.el
+++ b/osm.el
@@ -121,6 +121,7 @@ Should be at least 7 days according to the server usage 
policies."
     (define-key map "+" #'osm-larger)
     (define-key map "-" #'osm-smaller)
     (define-key map [mouse-1] #'osm-click)
+    (define-key map [drag-mouse-1] #'osm-drag)
     (define-key map [up] #'osm-up)
     (define-key map [down] #'osm-down)
     (define-key map [left] #'osm-left)
@@ -300,6 +301,15 @@ We need two distinct images which are not `eq' for the 
display properties.")
       (cl-incf osm--y (- y osm--wy))
       (osm-larger))))
 
+(defun osm-drag (event)
+  "Handle drag EVENT."
+  (interactive "e")
+  (pcase-let ((`(,sx . ,sy) (posn-x-y (event-start event)))
+              (`(,ex . ,ey) (posn-x-y (event-end event))))
+    (cl-incf osm--x (- sx ex))
+    (cl-incf osm--y (- sy ey))
+    (osm--update)))
+
 (defun osm-larger (&optional n)
   "Zoom N times into the map."
   (interactive "p")

Reply via email to