# HG changeset patch # User Kim F. Storm # Date 1133308700 0 # Node ID 4fd503f32b2cccd60ff1e48f67b752af5c47ef7e # Parent 818361523ce879e504cf5c0bef930646353fcbbb (cua--rectangle-overlays): Make permanent-local. (cua--rectangle-post-command): Cleanup overlays and deactivate mark after revert-buffer (or anything else which kills all local variables). diff -r 818361523ce8 -r 4fd503f32b2c lisp/emulation/cua-rect.el --- a/lisp/emulation/cua-rect.el Tue Nov 29 23:54:47 2005 +0000 +++ b/lisp/emulation/cua-rect.el Tue Nov 29 23:58:20 2005 +0000 @@ -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 @@ (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)))