]> code.delx.au - gnu-emacs/commitdiff
Preserve window-point-insertion-type when copying window-point markers. (Bug#12588)
authorMartin Rudalics <rudalics@gmx.at>
Tue, 13 Nov 2012 07:40:07 +0000 (08:40 +0100)
committerMartin Rudalics <rudalics@gmx.at>
Tue, 13 Nov 2012 07:40:07 +0000 (08:40 +0100)
* window.el (record-window-buffer)
(display-buffer-record-window): When copying the markers to
window-point preserve window-point-insertion-type. (Bug#12588)

lisp/ChangeLog
lisp/window.el

index 61d202433fcba16ab1ab58aaf4b964dadf9181ca..c13ef1289f8ee59daed792599f4bdd300b2fe2a7 100644 (file)
@@ -1,3 +1,9 @@
+2012-11-13  Martin Rudalics  <rudalics@gmx.at>
+
+       * window.el (record-window-buffer)
+       (display-buffer-record-window): When copying the markers to
+       window-point preserve window-point-insertion-type. (Bug#12588)
+
 2012-11-13  Glenn Morris  <rgm@gnu.org>
 
        * emacs-lisp/eieio-datadebug.el (eieio-debug-methodinvoke):
index 30ee622cfe63cf187004dc61b40be644f5278aaa..6ea66d9d0a259c3f8cc9731080aed26dc14101e4 100644 (file)
@@ -3049,8 +3049,10 @@ WINDOW must be a live window and defaults to the selected one."
                                (set-marker (nth 2 entry) point))
                        ;; Make new markers.
                        (list (copy-marker start)
-                             (copy-marker point)))))
-
+                             (copy-marker
+                              ;; Preserve window-point-insertion-type
+                              ;; (Bug#12588).
+                              point window-point-insertion-type)))))
          (set-window-prev-buffers
           window (cons entry (window-prev-buffers window))))))))
 
@@ -4555,13 +4557,17 @@ element is BUFFER."
          ;; If WINDOW has a quit-restore parameter, reset its car.
          (setcar (window-parameter window 'quit-restore) 'same))
       ;; WINDOW shows another buffer.
-      (set-window-parameter
-       window 'quit-restore
-       (list 'other
-            ;; A quadruple of WINDOW's buffer, start, point and height.
-            (list (window-buffer window) (window-start window)
-                  (window-point window) (window-total-size window))
-            (selected-window) buffer))))
+      (with-current-buffer (window-buffer window)
+       (set-window-parameter
+        window 'quit-restore
+        (list 'other
+              ;; A quadruple of WINDOW's buffer, start, point and height.
+              (list (current-buffer) (window-start window)
+                    ;; Preserve window-point-insertion-type (Bug#12588).
+                    (copy-marker
+                     (window-point window) window-point-insertion-type)
+                    (window-total-size window))
+              (selected-window) buffer)))))
    ((eq type 'window)
     ;; WINDOW has been created on an existing frame.
     (set-window-parameter