Signed-off-by: Fabienne Ducroquet <[email protected]>
---
src/config/actions-main.inc | 1 +
src/viewer/action.c | 4 ++++
src/viewer/text/view.c | 6 ++++++
src/viewer/text/view.h | 1 +
4 files changed, 12 insertions(+)
diff --git a/src/config/actions-main.inc b/src/config/actions-main.inc
index 5f686b2..abe6fa6 100644
--- a/src/config/actions-main.inc
+++ b/src/config/actions-main.inc
@@ -53,6 +53,7 @@ ACTION_(MAIN, "lua-console", LUA_CONSOLE, N__("Open a Lua
console"), ACTION_REST
ACTION_(MAIN, "mark-goto", MARK_GOTO, N__("Go at a specified mark"),
ACTION_REQUIRE_VIEW_STATE),
ACTION_(MAIN, "mark-set", MARK_SET, N__("Set a mark"),
ACTION_REQUIRE_VIEW_STATE),
ACTION_(MAIN, "menu", MENU, N__("Activate the menu"), 0),
+ACTION_(MAIN, "move-current-top", MOVE_CURRENT_TOP, N__("Move downwards to put
the current line at the top"), ACTION_REQUIRE_VIEW_STATE),
ACTION_(MAIN, "move-cursor-down", MOVE_CURSOR_DOWN, N__("Move cursor down"),
ACTION_REQUIRE_VIEW_STATE),
ACTION_(MAIN, "move-cursor-left", MOVE_CURSOR_LEFT, N__("Move cursor left"),
ACTION_REQUIRE_VIEW_STATE),
ACTION_(MAIN, "move-cursor-line-start", MOVE_CURSOR_LINE_START, N__("Move
cursor to the start of the line"), ACTION_REQUIRE_VIEW_STATE),
diff --git a/src/viewer/action.c b/src/viewer/action.c
index 77280e6..6d15e33 100644
--- a/src/viewer/action.c
+++ b/src/viewer/action.c
@@ -335,6 +335,10 @@ do_action(struct session *ses, enum main_action action_id,
int verbose)
activate_bfu_technology(ses, -1);
break;
+ case ACT_MAIN_MOVE_CURRENT_TOP:
+ status = move_current_top(ses, doc_view);
+ break;
+
case ACT_MAIN_MOVE_CURSOR_UP:
status = move_cursor_up(ses, doc_view);
break;
diff --git a/src/viewer/text/view.c b/src/viewer/text/view.c
index 8eb422d..943bd33 100644
--- a/src/viewer/text/view.c
+++ b/src/viewer/text/view.c
@@ -138,6 +138,12 @@ move_half_page_down(struct session *ses, struct
document_view *doc_view)
return move_part_page_down(ses, doc_view, doc_view->box.height / 2);
}
+enum frame_event_status
+move_current_top(struct session *ses, struct document_view *doc_view)
+{
+ return move_part_page_down(ses, doc_view, doc_view->box.height -
ses->tab->y + 1);
+}
+
/*! @a type == 0 -> PAGE_UP;
* @a type == 1 -> UP */
static void
diff --git a/src/viewer/text/view.h b/src/viewer/text/view.h
index d7721b1..7c11260 100644
--- a/src/viewer/text/view.h
+++ b/src/viewer/text/view.h
@@ -14,6 +14,7 @@ struct terminal;
* But doesn't free() the @a doc_view. */
void detach_formatted(struct document_view *doc_view);
+enum frame_event_status move_current_top(struct session *ses, struct
document_view *doc_view);
enum frame_event_status move_half_page_down(struct session *ses, struct
document_view *doc_view);
enum frame_event_status move_half_page_up(struct session *ses, struct
document_view *doc_view);
enum frame_event_status move_page_down(struct session *ses, struct
document_view *doc_view);
--
1.8.5.1
_______________________________________________
elinks-dev mailing list
[email protected]
http://linuxfromscratch.org/mailman/listinfo/elinks-dev