summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog3
-rw-r--r--lisp/comint.el23
2 files changed, 16 insertions, 10 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index c67c63953f5..8bfd1dfa019 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,8 @@
2009-08-30 Stefan Monnier <monnier@iro.umontreal.ca>
+ * comint.el (comint-insert-input): Be careful to only set point if we
+ don't delegate to some other command.
+
* proced.el (proced-signal-list): Make it an alist.
(proced-grammar-alist): Capitalize names.
(proced-send-signal): Use a non-hidden buffer (since it's displayed).
diff --git a/lisp/comint.el b/lisp/comint.el
index 4fa9f7c3ced..69fd32d9b3b 100644
--- a/lisp/comint.el
+++ b/lisp/comint.el
@@ -816,7 +816,9 @@ buffer. The hook `comint-exec-hook' is run after each exec."
If there is no previous input at point, run the command specified
by the global keymap (usually `mouse-yank-at-click')."
(interactive "e")
- (mouse-set-point event)
+ ;; Don't set the mouse here, since it may otherwise change the behavior
+ ;; of the command on which we fallback if there's no field at point.
+ ;; (mouse-set-point event)
(let ((pos (posn-point (event-end event)))
field input)
(with-selected-window (posn-window (event-end event))
@@ -833,15 +835,16 @@ by the global keymap (usually `mouse-yank-at-click')."
(fun (and last-key (lookup-key global-map (vector last-key)))))
(and fun (not (eq fun 'comint-insert-input))
(call-interactively fun)))
- ;; Otherwise, insert the previous input.
- (goto-char (point-max))
- ;; First delete any old unsent input at the end
- (delete-region
- (or (marker-position comint-accum-marker)
- (process-mark (get-buffer-process (current-buffer))))
- (point))
- ;; Insert the input at point
- (insert input))))
+ (with-selected-window (posn-window (event-end event))
+ ;; Otherwise, insert the previous input.
+ (goto-char (point-max))
+ ;; First delete any old unsent input at the end
+ (delete-region
+ (or (marker-position comint-accum-marker)
+ (process-mark (get-buffer-process (current-buffer))))
+ (point))
+ ;; Insert the input at point
+ (insert input)))))
;; Input history processing in a buffer
;; ===========================================================================