]> git.eshelyaron.com Git - emacs.git/commitdiff
(cua--rectangle-overlays): Make permanent-local.
authorKim F. Storm <storm@cua.dk>
Tue, 29 Nov 2005 23:58:20 +0000 (23:58 +0000)
committerKim F. Storm <storm@cua.dk>
Tue, 29 Nov 2005 23:58:20 +0000 (23:58 +0000)
(cua--rectangle-post-command): Cleanup overlays and deactivate mark
after revert-buffer (or anything else which kills all local variables).

lisp/emulation/cua-rect.el

index 35132e60e8df0bb20bdcb0bd66ac6ebbd407439b..0590af50249ca8cec08768821864e640378c7dc9 100644 (file)
@@ -65,6 +65,7 @@
 ;; List of overlays used to display current rectangle.
 (defvar cua--rectangle-overlays nil)
 (make-variable-buffer-local 'cua--rectangle-overlays)
+(put 'cua--rectangle-overlays 'permanent-local t)
 
 (defvar cua--overlay-keymap
   (let ((map (make-sparse-keymap)))
@@ -1393,7 +1394,12 @@ With prefix arg, indent to that column."
       (if (and mark-active
                (not deactivate-mark))
           (cua--highlight-rectangle)
-        (cua--deactivate-rectangle)))
+        (cua--deactivate-rectangle))
+    (when cua--rectangle-overlays
+      ;; clean-up after revert-buffer
+      (mapcar (function delete-overlay) cua--rectangle-overlays)
+      (setq cua--rectangle-overlays nil)
+      (setq deactivate-mark t)))
   (when cua--rect-undo-set-point
     (goto-char cua--rect-undo-set-point)
     (setq cua--rect-undo-set-point nil)))