This bug has to be fixed properly, otherwise, this is really interfering with the default elinks behaviour. If we can fix this cursor geometry issue, I will surely ask them to include it in the mainstream.
Thanks a lot. On Tue, Aug 14, 2007 at 07:59:14PM +0200, Witold Filipczyk wrote: > Here is the patch. > Kalle, Jonas, could apply them (key motion patches) to the mainstream ELinks? > move-link-down-line, move-link-prev-line, etc.: > Change mode to NAVIGATE_LINKWISE to preserve the link position when > going back. > > --- > commit 14b37d0362f9963cb2803d08d2c3e6e84574cdbe > tree 062545598ae45bf519f7e825b0302542061bbf34 > parent 2045574edca170a47b1e9f1e05cd210bdae8a49a > author Witold Filipczyk <[EMAIL PROTECTED]> Tue, 14 Aug 2007 19:56:02 +0200 > committer Witold Filipczyk <[EMAIL PROTECTED]> Tue, 14 Aug 2007 19:56:02 +0200 > > src/viewer/text/view.c | 25 ++++++++++++++++++++----- > 1 files changed, 20 insertions(+), 5 deletions(-) > > diff --git a/src/viewer/text/view.c b/src/viewer/text/view.c > index 887f301..a0ebefa 100644 > --- a/src/viewer/text/view.c > +++ b/src/viewer/text/view.c > @@ -201,8 +201,13 @@ move_link_prev_line(struct session *ses, struct > document_view *doc_view) > if (!last) last = link; > else if (link->points[0].x > last->points[0].x) last = > link; > } > - if (last) > - return move_cursor_rel(ses, doc_view, last->points[0].x > - x1, last->points[0].y - y1); > + if (last) { > + enum frame_event_status status = move_cursor_rel(ses, > doc_view, > + last->points[0].x - x1, last->points[0].y - y1); > + > + ses->navigate_mode = NAVIGATE_LINKWISE; > + return status; > + } > } > return FRAME_EVENT_OK; > } > @@ -245,8 +250,13 @@ move_link_next_line(struct session *ses, struct > document_view *doc_view) > if (!last) last = link; > else if (link->points[0].x < last->points[0].x) last = > link; > } > - if (last) > - return move_cursor_rel(ses, doc_view, last->points[0].x > - x1, last->points[0].y - y1); > + if (last) { > + enum frame_event_status status = move_cursor_rel(ses, > doc_view, > + last->points[0].x - x1, last->points[0].y - y1); > + > + ses->navigate_mode = NAVIGATE_LINKWISE; > + return status; > + } > } > return FRAME_EVENT_OK; > } > @@ -708,7 +718,12 @@ move_link_vertical(struct session *ses, struct > document_view *doc_view, int dir_ > if (!link) continue; > for (; link <= document->lines2[y]; link++) { > if (link->points[0].y == y) { > - return move_cursor_rel(ses, doc_view, 0, y - > y1); > + enum frame_event_status status = > move_cursor_rel(ses, > + doc_view, 0, y - y1); > + > + if (vs->current_link != -1) > + ses->navigate_mode = NAVIGATE_LINKWISE; > + return status; > } > } > } _______________________________________________ elinks-dev mailing list elinks-dev@linuxfromscratch.org http://linuxfromscratch.org/mailman/listinfo/elinks-dev