]> git.eshelyaron.com Git - emacs.git/commitdiff
Correct ses-rename-cell cursor-intangible text prop updating.
authorVincent Belaïche <vincentb1@users.sourceforge.net>
Wed, 30 Dec 2015 23:10:37 +0000 (00:10 +0100)
committerVincent Belaïche <vincentb1@users.sourceforge.net>
Wed, 30 Dec 2015 23:10:37 +0000 (00:10 +0100)
There were two problems:

- First ses-rename-cell has to work when called non interactively
  (with non-nil CELL argument), so in this case the start pos of
  put-text-property cannot be plainly (point), you need a
  ses-goto-print call before

- Second, the range itself was computed erronously, only the first
  char was affected instead of the full cell width. This was not
  noticeable prior to changes (Deprecate `intangible' and
  `point-entered' properties) made by Stefan on 2015-04-13T19:51:15Z

* lisp/ses.el (ses-rename-cell): Correct computation of position range
to which the 'cursor-intangible text property has to be set to cell
new name.

lisp/ses.el

index 8cbc2e80cdec8fa605302715d3b40f319f98ded8..3e35fc10ac6f96f0bfbaaa1031a6670a2a19aca6 100644 (file)
@@ -3414,15 +3414,17 @@ highlighted range in the spreadsheet."
     (setf (ses-cell--symbol cell) new-name)
     (makunbound sym)
     (and curcell (setq ses--curcell new-name))
-    (let* ((pos (point))
-          (inhibit-read-only t)
-          (col (current-column))
-          (end (save-excursion
-                 (move-to-column (1+ col))
-                 (if (eolp)
-                     (+ pos (ses-col-width col) 1)
-                   (point)))))
-      (put-text-property pos end 'cursor-intangible new-name))
+    (save-excursion
+      (or curcell (ses-goto-print row col))
+      (let* ((pos (point))
+             (inhibit-read-only t)
+             (end (progn
+                    (move-to-column (+ (current-column) (ses-col-width col)))
+                    (if (eolp)
+                        (+ pos (ses-col-width col) 1)
+                      (forward-char)
+                      (point)))))
+        (put-text-property pos end 'cursor-intangible new-name)))
     ;; Update the cell name in the mode-line.
     (force-mode-line-update)))