emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 0c9abf3: Correct ses-rename-cell cursor-intangible


From: Vincent Belaïche
Subject: [Emacs-diffs] master 0c9abf3: Correct ses-rename-cell cursor-intangible text prop updating.
Date: Wed, 30 Dec 2015 23:11:44 +0000

branch: master
commit 0c9abf36a4fbc775918c08c1104a64d037280abc
Author: Vincent Belaïche <address@hidden>
Commit: Vincent Belaïche <address@hidden>

    Correct ses-rename-cell cursor-intangible text prop updating.
    
    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 |   20 +++++++++++---------
 1 files changed, 11 insertions(+), 9 deletions(-)

diff --git a/lisp/ses.el b/lisp/ses.el
index 8cbc2e8..3e35fc1 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -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)))
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]