Subject: 25.0.50; "ses" confused about current cell

From: Ken Raeburn <[email-masked]>
Date: Thu, 3 Dec 2015 06:12:58 -0500

After installing from the emacs-25 branch, I had occasion to want to do
some quick spreadsheet work.  I found that updates to cell contents or
changes to column widths often didn't apply to the cell/column I
appeared to have selected.  I haven't figured out enough of a pattern to
it to be able to try to work around it; it basically made ses unusable.

This sequence demonstrates the sort of problems I was running into:

run emacs -Q
C-x C-f foo.ses RET
(assuming no such file exists)
current cell is A1, per cursor location and mode line indicator
enter 1 RET
cursor looks like it's two lines below cell A1, mode line shows no cell id
up-arrow, we're back at A1
TAB, we're at B1
type just "2", minibuffer prompt indicates we're entering a value for A1
  though the highlighted cell and mode line indicator say otherwise
type RET, and cell A1 is updated, B1 is empty, cursor is below A1
up-arrow, we're at B1
TAB TAB, we're at D1
type just "3", prompt indicates we're updating C1
RET, indeed C1 is updated and D1 empty, cursor below A1
C-o to open a line, the blank line is inserted *before* (former) row 1,
  and the cursor is at (new) C1, with the values we entered now in row 2
4 RET, the value goes into cell C1 and the cursor moves to D1
5 RET, the value goes into cell C1 (which we weren't selecting), and the
  cursor goes to A2
click the mouse on the "3" in cell C2, that cell gets selected
type "w", we get prompted for the new width for column C
type 8 RET, the column gets a little wider
click the mouse on the "2" in cell A2...
  It appears that A2 is momentarily selected, but immediately (or as
  soon as I release the mouse?) we switch to cell B2.
type "w", we get prompted for the new width for column C (not B where we are)
type 9 RET, column C is indeed adjusted

If I click the mouse on the first character position within cell A2, it
selects A2; anywhere else and it seems to switch to B2.

So...

* The cell to be updated per the minibuffer prompt and the actual update
  don't match the current cell as indicated by the underlined text, the
  text cursor, and the mode line indicator.  At work I also saw this
  when using "=" to edit the current value of a cell -- it would often
  start to edit a different cell's value.

* The positioning of the cursor a couple lines below the spreadsheet
  surprised me, though maybe I just haven't used ses-mode in a while and
  it's always been this way.  It was strange to move up from there (the
  beginning of the line) and be somewhere other than column A.  It also
  seemed strange for C-o from there to insert a line before the first
  and only line of the spreadsheet, rather than before the apparent
  current position (past the end of the spreadsheet, so before that presumably
  would be after the last existing row of the spreadsheet).

* Column-width updating doesn't always apply to the current column.

* I couldn't select cell A2 by clicking within it, unless I happened to
  hit the very beginning of the line.

In GNU Emacs 25.0.50.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.25)
 of 2015-12-03
Repository revision: 4d10a7d467b6b0927036387c0d4849b2f40abcee
Windowing system distributor 'The X.Org Foundation', version 11.0.11604000
System Description:	Debian GNU/Linux 8.2 (jessie)

Configured using:
 'configure --prefix=/home/ken/dev/emacs/emacs-25/lx/I'

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND GPM DBUS GCONF GSETTINGS NOTIFY LIBXML2
FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK2 X11

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Fundamental

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message dired format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns help-mode easymenu cl-loaddefs pcase cl-lib mail-prsvr
mail-utils time-date mule-util tooltip eldoc electric uniquify
ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer
select scroll-bar mouse jit-lock font-lock syntax facemenu font-core
frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan
thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian
slovak czech european ethiopic indian cyrillic chinese charscript
case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer
cl-preloaded nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote dbusbind inotify
dynamic-setting system-font-setting font-render-setting move-toolbar gtk
x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 82316 5572)
 (symbols 48 18951 0)
 (miscs 40 98 85)
 (strings 32 12502 4455)
 (string-bytes 1 371510)
 (vectors 16 10690)
 (vector-slots 8 414110 5822)
 (floats 8 141 49)
 (intervals 56 240 0)
 (buffers 976 12)
 (heap 1024 40753 912))