[hotkeys] add ctrl-d/ctrl-u hotkeys for moving by half a page

Also fixed a bug that caused the bottom status line to
be updated with the wrong line number.

Related to #945
pull/1084/head
Tim Stack 2 years ago
parent 2c981dbe25
commit b92663b38a

@ -5,6 +5,8 @@ Features:
be toggled by pressing CTRL-X. While in cursor mode, any be toggled by pressing CTRL-X. While in cursor mode, any
operations that would normally work on the "top" line now operations that would normally work on the "top" line now
operate on the selected line instead. operate on the selected line instead.
* Added CTRL-D and CTRL-U hotkeys to move down/up by half
a page.
## lnav v0.11.1 ## lnav v0.11.1

@ -70,7 +70,13 @@
"command": ":reset-session" "command": ":reset-session"
}, },
"x18": { "x18": {
"command": ";UPDATE lnav_views SET movement = (CASE movement WHEN 'top' THEN 'cursor' ELSE 'top' END) WHERE name = (SELECT name FROM lnav_view_stack ORDER BY rowid DESC LIMIT 1)" "command": ";UPDATE lnav_views SET movement = (CASE movement WHEN 'top' THEN 'cursor' ELSE 'top' END) WHERE name = (SELECT name FROM lnav_top_view)"
},
"x04": {
"command": ";UPDATE lnav_views SET top = top + (height / 2) WHERE name = (SELECT name FROM lnav_top_view)"
},
"x15": {
"command": ";UPDATE lnav_views SET top = top - (height / 2) WHERE name = (SELECT name FROM lnav_top_view)"
}, },
"x3d": { "x3d": {
"command": ";UPDATE lnav_views SET paused = 1 - paused" "command": ";UPDATE lnav_views SET paused = 1 - paused"

@ -739,6 +739,20 @@ clear_last_user_mark(listview_curses* lv)
} }
} }
static void
update_view_position(listview_curses* lv)
{
lnav_data.ld_view_stack.top() | [lv](auto* top_lv) {
if (lv != top_lv) {
return;
}
lnav_data.ld_bottom_source.update_line_number(lv);
lnav_data.ld_bottom_source.update_percent(lv);
lnav_data.ld_bottom_source.update_marks(lv);
};
}
class lnav_behavior : public mouse_behavior { class lnav_behavior : public mouse_behavior {
public: public:
void mouse_event(int button, bool release, int x, int y) override void mouse_event(int button, bool release, int x, int y) override
@ -1304,12 +1318,7 @@ looper()
lnav_data.ld_view_stack.push_back(&lnav_data.ld_views[LNV_LOG]); lnav_data.ld_view_stack.push_back(&lnav_data.ld_views[LNV_LOG]);
sb.push_back(clear_last_user_mark); sb.push_back(clear_last_user_mark);
sb.push_back(bind_mem(&bottom_status_source::update_line_number, sb.push_back(update_view_position);
&lnav_data.ld_bottom_source));
sb.push_back(bind_mem(&bottom_status_source::update_percent,
&lnav_data.ld_bottom_source));
sb.push_back(bind_mem(&bottom_status_source::update_marks,
&lnav_data.ld_bottom_source));
vsb.push_back( vsb.push_back(
bind_mem(&term_extra::update_title, injector::get<term_extra*>())); bind_mem(&term_extra::update_title, injector::get<term_extra*>()));
vsb.push_back([](listview_curses* lv) { vsb.push_back([](listview_curses* lv) {

Loading…
Cancel
Save