# HG changeset patch # User Stefan Monnier # Date 1081963713 0 # Node ID 47cdc4f7ee17868ca9a1770b975aaae872287994 # Parent 50d070a9849204db157fc3bfdad438091a8a94ba (posn-set-point): New function. diff -r 50d070a98492 -r 47cdc4f7ee17 lisp/subr.el --- a/lisp/subr.el Wed Apr 14 15:58:30 2004 +0000 +++ b/lisp/subr.el Wed Apr 14 17:28:33 2004 +0000 @@ -678,7 +678,7 @@ (defsubst event-start (event) "Return the starting position of EVENT. -If EVENT is a mouse press or a mouse click, this returns the location +If EVENT is a mouse or key press or a mouse click, this returns the location of the event. If EVENT is a drag, this returns the drag's starting position. The return value is of the form @@ -689,7 +689,8 @@ (list (selected-window) (point) '(0 . 0) 0))) (defsubst event-end (event) - "Return the ending location of EVENT. EVENT should be a click or drag event. + "Return the ending location of EVENT. +EVENT should be a click, drag, or key press event. If EVENT is a click event, this function is the same as `event-start'. The return value is of the form (WINDOW AREA-OR-POS (X . Y) TIMESTAMP OBJECT POS (COL . ROW) @@ -727,6 +728,15 @@ (car (nth 1 position)) (nth 1 position)))) +(defun posn-set-point (position) + "Move point to POSITION. +Select the corresponding window as well." + (if (not (windowp (posn-window posn))) + (error "Position not in text area of window")) + (select-window (posn-window posn)) + (if (numberp (posn-point posn)) + (goto-char (posn-point posn)))) + (defsubst posn-x-y (position) "Return the x and y coordinates in POSITION. POSITION should be a list of the form returned by the `event-start'