[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
cursor placement after <PageUp>
From: |
Benno Schulenberg |
Subject: |
cursor placement after <PageUp> |
Date: |
Sat, 22 Mar 2008 15:03:49 +0100 |
User-agent: |
KMail/1.9.9 |
Benno Schulenberg wrote:
> The cursor beviour of <PageUp> is a little strange. After doing
> info info, N, 6, End, then a series of PageUp puts the cursor at
> the following places: top, bottom, top, bottomish, top, middlish
> (on a 33-line 80-column Konsole).
When scrolling half a window, it makes sense to maintain the textual
position of the cursor. But when scrolling nearly a full window,
it is nicer to have the cursor in a predictable place, in always
the same spot.
Since during scrolling page after pagefull down the cursor always
sits in the top-left corner, it makes most sense to put it there
too after scrolling a page up. This also makes it easier to <Tab>
to a crossreference somewhere in the page, compared to having the
cursor near the bottom half of the time.
If this new cursor positioning makes sense, it can be achieved by
inserting the following statement at the end of _scroll_backward(),
and before the return statement ten lines earlier:
window->point = (window->line_starts[window->pagetop]
- window->node->contents);
The preceding "info_beginning_of_node (window, 1, 0);" can then be
elided and the two ifs contracted to:
if ((backward_move_node_structure (window, behaviour) == 0)
&& cursor_movement_scrolls_p)
info_end_of_node (window, 1, 0);
Benno