emacs-diffs
[Top][All Lists]
Advanced

[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.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]