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.
This commit is contained in:
parent
209e30bac2
commit
0c9abf36a4
1 changed files with 11 additions and 9 deletions
20
lisp/ses.el
20
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)))
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue