Skip to Content.
Sympa Menu

emacspeak - [Emacspeak] more info... up/down arrow keys in tabulated-list buffers...

Subject: Emacspeak discussion list

List archive

[Emacspeak] more info... up/down arrow keys in tabulated-list buffers...


Chronological Thread 
  • From: Jerry Sievers <gsievers19 AT comcast.net>
  • To: emacspeak AT emacspeak.net
  • Subject: [Emacspeak] more info... up/down arrow keys in tabulated-list buffers...
  • Date: Fri, 19 Jul 2024 16:29:46 -0500

Original message further below and the temporary patch I'm running with
is shown marked with triple pound sign ### below this new commentary.

The issue was reproduced even when running a bare minimal configuration.

I was wrong when reporting that I also get the issue in package menu
buffers. However the difference apparently is that in package menu,
there is a *small margin* of space chars preceding the first
tabulated-list field and I believe the emacspeak code assumes this
margin, which I do not have in at least buffer-menu and process-list
buffers.

For those, without margin, and probably others, the explicit move to the
noted *col* number field ends up puting you 1 field beyond where the
original position was before the move.

The hack to work around this involves a test for the tabulated-list
property being seen in the new beginning of line position *before*
advancing back to col. If the property is seen, then we advance by one
field less than col, else col as originally noted.

I do not bet that this is an elegant fix but it resolves the issue for
me at present.

I did also check to see that on my emacs running in a graphical Mac
window, there is still no left margin before the first field with larger
font sizes, the kind that result in horizontal split when invoking
buffer-menu, not the usual vertical split that I get.

Patch below adds only the if/else logic to conditionally subtract one
from the advance-to field position.

###
master:lisp$ git diff -U2
diff --git a/lisp/emacspeak-tabulated-list.el
b/lisp/emacspeak-tabulated-list.el
index f7f1ac1c1..d08dc22bb 100644
--- a/lisp/emacspeak-tabulated-list.el
+++ b/lisp/emacspeak-tabulated-list.el
@@ -102,5 +102,5 @@
:test #'string= :key #'car)))
(forward-line 1)
- (tabulated-list-next-column col)
+ (tabulated-list-next-column (- col (if (get-text-property (point)
'tabulated-list-column-name) 1 0)))
(when-let ((goal (next-single-property-change (point)

'tabulated-list-column-name)))
@@ -117,5 +117,5 @@
:test #'string= :key #'car)))
(forward-line -1)
- (tabulated-list-next-column col)
+ (tabulated-list-next-column (- col (if (get-text-property (point)
'tabulated-list-column-name) 1 0)))
(when-let ((goal (next-single-property-change
(point) 'tabulated-list-column-name)))
master:lisp$


Thx!



Raman, et al;

Curious if anyone else sees this before I delve in.

Emacspeak HEAD as of today, and also from the prior June 2nd 2024 build
that I was running.

My emacs is 29.2 Macport emacs-mac from homebrew.

Arrowing up/down in buffer menu, package menu, process
list...etc. results in the cursor and spoken field being 1+ whatever
field I was on before the move.

Thus, an immediate left arrow right after moving up or down is required
to get back to the original column.

I observed the strangeness also after restarting emacs with an init.el
and custom.el as stripped down as I can get away with.

A quick study of emacspeak-tabulated-list.el doesn't reveal what I might
obviously explore next.

I am assuming the observed behavior is *not* intentional, but please
advise.

Thx!



Archive powered by MHonArc 2.6.19+.

Top of Page