Commit Diff


commit - 738a231a5fb74c88b78181ed3fa18d016d0ecaca
commit + 167131d5b470df96c57a279d9e1e3813870d1bcd
blob - 02bc69712b041bfec75c628922b9315b3d025d6a
blob + 48638c81dd69c3990a39403314a7501e8e8e5e10
--- cmd.c
+++ cmd.c
@@ -910,4 +910,34 @@ void
 cmd_other_window(struct buffer *buffer)
 {
 	ui_other_window();
+}
+
+void
+cmd_mini_scroll_up(struct buffer *buffer)
+{
+	if (!in_minibuffer)
+		return;
+
+        buffer = &ministate.compl.buffer;
+	if (buffer->current_line == NULL)
+		return;
+
+	buffer->current_line->parent->type = LINE_COMPL;
+	cmd_scroll_up(buffer);
+	buffer->current_line->parent->type = LINE_COMPL_CURRENT;
+}
+
+void
+cmd_mini_scroll_down(struct buffer *buffer)
+{
+	if (!in_minibuffer)
+		return;
+
+        buffer = &ministate.compl.buffer;
+	if (buffer->current_line == NULL)
+		return;
+
+	buffer->current_line->parent->type = LINE_COMPL;
+	cmd_scroll_down(buffer);
+	buffer->current_line->parent->type = LINE_COMPL_CURRENT;
 }
blob - 35769ebca2a61cf58ef95670cdfa49afe8698247
blob + 82bf0ee3d076105ab765fec36921a23e3d470c4f
--- cmd.h
+++ cmd.h
@@ -29,6 +29,8 @@ CMD(cmd_mini_goto_end,		"Select the last completion.")
 CMD(cmd_mini_kill_line,		"Delete from point until the end of the line.");
 CMD(cmd_mini_next_history_element, "Load the next history element.");
 CMD(cmd_mini_previous_history_element, "Load the previous history element.");
+CMD(cmd_mini_scroll_down,	"Scroll completions up by one visual page");
+CMD(cmd_mini_scroll_up,		"Scroll completions up by one visual page");
 CMD(cmd_move_beginning_of_line,	"Move point at the beginning of the current visual line.");
 CMD(cmd_move_end_of_line,	"Move point at the end of the current visual line.");
 CMD(cmd_next_button,		"Move point to the next link.");
blob - 5cc7dcd9be593acbe18b86fdf7ce51ef6f83cb95
blob + ceb09e2d60e4c7ae711c1e9e31f46408a5b5b8ea
--- defaults.c
+++ defaults.c
@@ -375,6 +375,11 @@ load_default_keys(void)
 	minibuffer_set_key("<up>",		cmd_previous_completion);
 	minibuffer_set_key("<down>",		cmd_next_completion);
 
+	minibuffer_set_key("C-v",		cmd_mini_scroll_down);
+	minibuffer_set_key("M-v",		cmd_mini_scroll_up);
+	minibuffer_set_key("<next>",		cmd_mini_scroll_down);
+	minibuffer_set_key("<prior>",		cmd_mini_scroll_up);
+
 	minibuffer_set_key("M-<",		cmd_mini_goto_beginning);
 	minibuffer_set_key("M->",		cmd_mini_goto_end);