changeset 48014:fc643b6ab4f4

* textmodes/picture.el (picture-mouse-set-point): New command. (picture-mode-map): Bind it. (picture-motion-reverse): Doc fix.
author John Paul Wallington <jpw@pobox.com>
date Sat, 26 Oct 2002 22:40:40 +0000
parents d3416b0f856c
children 68b29ca63a54
files lisp/ChangeLog lisp/textmodes/picture.el
diffstat 2 files changed, 21 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Oct 26 22:40:31 2002 +0000
+++ b/lisp/ChangeLog	Sat Oct 26 22:40:40 2002 +0000
@@ -3,6 +3,12 @@
 	* pcvs.el (cvs-checkout): Use read-directory-name.
 	(cvs-query-directory): Likewise.
 
+2002-10-26  John Paul Wallington  <jpw@shootybangbang.com>
+
+	* textmodes/picture.el (picture-mouse-set-point): New command.
+	(picture-mode-map): Bind it.
+	(picture-motion-reverse): Doc fix.
+
 2002-10-25  Stefan Monnier  <monnier@cs.yale.edu>
 
 	* textmodes/outline.el (outline-next-heading): Make sure the match-data
--- a/lisp/textmodes/picture.el	Sat Oct 26 22:40:31 2002 +0000
+++ b/lisp/textmodes/picture.el	Sat Oct 26 22:40:40 2002 +0000
@@ -1,6 +1,6 @@
 ;;; picture.el --- "Picture mode" -- editing using quarter-plane screen model
 
-;; Copyright (C) 1985, 1994 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1994, 2002 Free Software Foundation, Inc.
 
 ;; Author: K. Shane Hartman
 ;; Maintainer: FSF
@@ -222,10 +222,22 @@
   "Move point in direction opposite of current picture motion in Picture mode.
 With ARG do it that many times.  Useful for delineating rectangles in
 conjunction with diagonal picture motion.
-Do \\[command-apropos] `picture-movement' to see commands which control motion."
+Do \\[command-apropos]  picture-movement  to see commands which control motion."
   (interactive "p")
   (picture-motion (- arg)))
 
+(defun picture-mouse-set-point (event)
+  "Move point to the position clicked on, making whitespace if necessary."
+  (interactive "e")
+  (let* ((pos (posn-col-row (event-start event)))
+	 (x (car pos))
+	 (y (cdr pos))
+	 (current-row (count-lines (window-start) (line-beginning-position))))
+    (unless (equal x (current-column))
+      (picture-forward-column (- x (current-column))))
+    (unless (equal y current-row)
+      (picture-move-down (- y current-row)))))
+
 
 ;; Picture insertion and deletion.
 
@@ -602,6 +614,7 @@
       (picture-substitute 'previous-line 'picture-move-up)
       (picture-substitute 'beginning-of-line 'picture-beginning-of-line)
       (picture-substitute 'end-of-line 'picture-end-of-line)
+      (picture-substitute 'mouse-set-point 'picture-mouse-set-point)
 
       (define-key picture-mode-map "\C-c\C-d" 'delete-char)
       (define-key picture-mode-map "\e\t" 'picture-toggle-tab-state)