[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r106002: New functions window-point-1
From: |
martin rudalics |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r106002: New functions window-point-1 and set-window-point-1. |
Date: |
Wed, 05 Oct 2011 10:59:13 +0200 |
User-agent: |
Bazaar (2.3.1) |
------------------------------------------------------------
revno: 106002
committer: martin rudalics <address@hidden>
branch nick: trunk
timestamp: Wed 2011-10-05 10:59:13 +0200
message:
New functions window-point-1 and set-window-point-1.
* window.el (window-point-1, set-window-point-1): New functions.
(window-in-direction, record-window-buffer, window-state-get-1)
(display-buffer-record-window): Use window-point-1 instead of
window-point.
(set-window-buffer-start-and-point): Use set-window-point-1.
modified:
lisp/ChangeLog
lisp/window.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog 2011-10-05 06:49:53 +0000
+++ b/lisp/ChangeLog 2011-10-05 08:59:13 +0000
@@ -4,6 +4,11 @@
frame-auto-delete. Suggested by Stefan Monnier.
(window--delete): Call frame-auto-hide-function instead of
investigating frame-auto-delete.
+ (window-point-1, set-window-point-1): New functions.
+ (window-in-direction, record-window-buffer, window-state-get-1)
+ (display-buffer-record-window): Use window-point-1 instead of
+ window-point.
+ (set-window-buffer-start-and-point): Use set-window-point-1.
2011-10-05 Stefan Monnier <address@hidden>
=== modified file 'lisp/window.el'
--- a/lisp/window.el 2011-10-05 06:49:53 +0000
+++ b/lisp/window.el 2011-10-05 08:59:13 +0000
@@ -1058,6 +1058,32 @@
(dolist (walk-windows-window (window-list-1 nil minibuf all-frames))
(funcall proc walk-windows-window))))
+(defun window-point-1 (&optional window)
+ "Return value of WINDOW's point.
+WINDOW can be any live window and defaults to the selected one.
+
+This function is like `window-point' with one exception: If
+WINDOW is selected, it returns the value of `point' of WINDOW's
+buffer regardless of whether that buffer is current or not."
+ (setq window (window-normalize-live-window window))
+ (if (eq window (selected-window))
+ (with-current-buffer (window-buffer window)
+ (point))
+ (window-point window)))
+
+(defun set-window-point-1 (window pos)
+ "Set value of WINDOW's point to POS.
+WINDOW can be any live window and defaults to the selected one.
+
+This function is like `set-window-point' with one exception: If
+WINDOW is selected, it moves `point' of WINDOW's buffer to POS
+regardless of whether that buffer is current or not."
+ (setq window (window-normalize-live-window window))
+ (if (eq window (selected-window))
+ (with-current-buffer (window-buffer window)
+ (goto-char pos))
+ (set-window-point window pos)))
+
(defun window-in-direction-2 (window posn &optional horizontal)
"Support function for `window-in-direction'."
(if horizontal
@@ -1087,7 +1113,7 @@
(last (+ first (if hor
(window-total-width window)
(window-total-height window))))
- (posn-cons (nth 6 (posn-at-point (window-point window) window)))
+ (posn-cons (nth 6 (posn-at-point (window-point-1 window) window)))
;; The column / row value of `posn-at-point' can be nil for the
;; mini-window, guard against that.
(posn (if hor
@@ -2492,7 +2518,7 @@
;; Add an entry for buffer to WINDOW's previous buffers.
(with-current-buffer buffer
(let ((start (window-start window))
- (point (window-point window)))
+ (point (window-point-1 window)))
(setq entry
(cons buffer
(if entry
@@ -2534,10 +2560,7 @@
;; Don't force window-start here (even if POINT is nil).
(set-window-start window start t))
(when point
- (if selected
- (with-current-buffer buffer
- (goto-char point))
- (set-window-point window point)))))
+ (set-window-point-1 window point))))
(defun switch-to-prev-buffer (&optional window bury-or-kill)
"In WINDOW switch to previous buffer.
@@ -3550,7 +3573,7 @@
;; All buffer related things go in here - make the buffer
;; current when retrieving `point' and `mark'.
(with-current-buffer (window-buffer window)
- (let ((point (if selected (point) (window-point window)))
+ (let ((point (window-point-1 window))
(start (window-start window))
(mark (mark)))
(window-list-no-nils
@@ -3845,14 +3868,7 @@
(list 'other
;; A quadruple of WINDOW's buffer, start, point and height.
(list (window-buffer window) (window-start window)
- (if (eq window (selected-window))
- ;; When WINDOW is the selected window use its
- ;; buffer's `point' instead of `window-point'
- ;; (Bug#9626).
- (with-current-buffer (window-buffer window)
- (point))
- (window-point window))
- (window-total-size window))
+ (window-point-1 window) (window-total-size window))
(selected-window) buffer))))
((eq type 'window)
;; WINDOW has been created on an existing frame.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r106002: New functions window-point-1 and set-window-point-1.,
martin rudalics <=