Bug summary
Problem
Neomacs does not correctly update the horizontal position of columns when horizontally scrolling a buffer containing text with (space :align-to N) display specifications.
When moving to the end of the line, which is out of frame, Neomacs leaves some columns out of frame but keeps some columns in place and fixed.
Besides, when moving to the end of the line, which is out of frame, it will add an extra "$" at the left beginning. This is correct in nw mode, but not in GUI mode.
Reproduce
add the following into a test.el file and load by neomacs -Q -l test.el:
(with-current-buffer (get-buffer-create "*align-test*")
(let ((inhibit-read-only t))
(erase-buffer)
(dotimes (i 50)
(insert (format "ROW-%03d" i))
(insert (propertize " " 'display '(space :align-to 11)))
(insert (format "AAAA-%03d" i))
(insert (propertize " " 'display '(space :align-to 21)))
(insert (format "BBBB-%03d" i))
(insert (propertize " " 'display '(space :align-to 31)))
(insert (format "CCCC-%03d" i))
(insert (propertize " " 'display '(space :align-to 41)))
(insert (format "DDDD-%03d" i))
(insert (propertize " " 'display '(space :align-to 69)))
(insert (format "EEEE-%03d" i))
(insert (propertize " " 'display '(space :align-to 87)))
(insert (format "FFFF-%03d" i))
(insert "\n"))
(setq-local buffer-read-only t))
(goto-char (point-min))
(pop-to-buffer (current-buffer)))
Then move to the buffer, M-x toggle truncate lines and adjust frame size, make line extend out of the frame.
Then Ctrl-e move to the end of the line, which is out of frame, you could see the first 3 columns move to the left, but the other right columns are fixed.
Extra information
Running the following will make the move work correctly:
(let ((inhibit-read-only t))
(remove-text-properties
(point-min) (point-max)
'(display)))
Neomacs --version output
Neomacs 0.0.19
Git commit: 4b405bbedf147bad34f7cdd863b68340876062f6
Source date: 2026-09-20T11:10:42.000000000-04:00
Build: release for x86_64-unknown-linux-gnu with rustc 1.96.1
Standalone Rust binary for Neomacs (no C dependency)
Platform
Linux (X11)
Install source
Built from source (cargo xtask fresh-build --release)
Bug summary
Problem
Neomacs does not correctly update the horizontal position of columns when horizontally scrolling a buffer containing text with (space :align-to N) display specifications.
When moving to the end of the line, which is out of frame, Neomacs leaves some columns out of frame but keeps some columns in place and fixed.
Besides, when moving to the end of the line, which is out of frame, it will add an extra "$" at the left beginning. This is correct in
nwmode, but not in GUI mode.Reproduce
add the following into a
test.elfile and load byneomacs -Q -l test.el:Then move to the buffer,
M-x toggle truncate linesand adjust frame size, make line extend out of the frame.Then
Ctrl-emove to the end of the line, which is out of frame, you could see the first 3 columns move to the left, but the other right columns are fixed.Extra information
Running the following will make the move work correctly:
Neomacs --version output
Platform
Linux (X11)
Install source
Built from source (
cargo xtask fresh-build --release)