]> git.eshelyaron.com Git - emacs.git/commitdiff
* emulation/cua-rect.el (cua--overlay-keymap): New keymap for
authorKim F. Storm <storm@cua.dk>
Fri, 3 Sep 2004 12:33:54 +0000 (12:33 +0000)
committerKim F. Storm <storm@cua.dk>
Fri, 3 Sep 2004 12:33:54 +0000 (12:33 +0000)
highlight overlays; allow using RET when cursor is over a button.
(cua--highlight-rectangle): Use it.
(cua--rectangle-set-corners): Don't move backwards at eol.
(cua--forward-line): Don't move into void after eob.

lisp/emulation/cua-rect.el

index 03bf28494c33f3ec384ce8a01e4a91a88dd9f443..3270b7fd62ca7cd4da083e01ab58360ebd357405 100644 (file)
 (defvar cua--rectangle-overlays nil)
 (make-variable-buffer-local 'cua--rectangle-overlays)
 
+(defvar cua--overlay-keymap
+  (let ((map (make-sparse-keymap)))
+    (define-key map "\r" 'cua-rotate-rectangle)))
+
 (defvar cua--virtual-edges-debug nil)
 
 ;; Per-buffer CUA mode undo list.
@@ -274,8 +278,10 @@ Knows about CUA rectangle highlighting in addition to standard undo."
     (move-to-column mc)
     (set-mark (point))
     (goto-char pp)
+    ;; Move cursor inside rectangle, except if char at rigth edge is a tab.
     (if (and (if (cua--rectangle-right-side)
-                (= (move-to-column pc) (- pc tab-width))
+                (and (= (move-to-column pc) (- pc tab-width))
+                     (not (eolp)))
               (> (move-to-column pc) pc))
             (not (bolp)))
        (backward-char 1))
@@ -285,7 +291,11 @@ Knows about CUA rectangle highlighting in addition to standard undo."
 
 (defun cua--forward-line (n)
   ;; Move forward/backward one line.  Returns t if movement.
-  (= (forward-line n) 0))
+  (let ((pt (point)))
+    (and (= (forward-line n) 0)
+        ;; Deal with end of buffer
+        (or (not (eobp))
+            (goto-char pt)))))
 
 (defun cua--rectangle-resized ()
   ;; Refresh state after resizing rectangle
@@ -843,6 +853,7 @@ If command is repeated at same position, delete the rectangle."
             (overlay-put overlay 'before-string bs)
             (overlay-put overlay 'after-string as)
             (overlay-put overlay 'face rface)
+            (overlay-put overlay 'keymap cua--overlay-keymap)
             (setq new (cons overlay new))))))
     ;; Trim old trailing overlays.
     (mapcar (function delete-overlay) old)