If adding a new character at the filter prompt creates a string, which matches both the current and the next line in the dired buffer, the cursor will move down in the dired buffer.
Repro: create an empty directory, and put files there named aaaaaaa1, aaaaaaa2, aaaaaaa3, aaaaaaa4.
Now, start dired in this directory, run dired-narrow, and type the string aaaaaaa at the Filter: prompt. Notice, that each press of a will move the cursor down in the dired buffer. If the cursor reaches the bottom, it will move upwards once, and then move downwards again. I expect that the cursor doesn't move if the currently selected dired entry still matches the filter.
I tried to fix this, and it seems to work if I add a condition at the bottom of dired-narrow--update (checks whether the cursor stands on an invisible line), but I'm not sure that this is a proper fix:
If adding a new character at the filter prompt creates a string, which matches both the current and the next line in the dired buffer, the cursor will move down in the dired buffer.
Repro: create an empty directory, and put files there named
aaaaaaa1
,aaaaaaa2
,aaaaaaa3
,aaaaaaa4
. Now, start dired in this directory, rundired-narrow
, and type the stringaaaaaaa
at theFilter:
prompt. Notice, that each press ofa
will move the cursor down in the dired buffer. If the cursor reaches the bottom, it will move upwards once, and then move downwards again. I expect that the cursor doesn't move if the currently selected dired entry still matches the filter.I tried to fix this, and it seems to work if I add a condition at the bottom of
dired-narrow--update
(checks whether the cursor stands on an invisible line), but I'm not sure that this is a proper fix: