Add a command-mode mapping for ':' instead of handling it specially

This commit is contained in:
Josh Holtrop 2017-11-24 19:16:30 -05:00
parent 56f7fa7127
commit f5d6014c68
3 changed files with 6 additions and 5 deletions

View File

@ -48,6 +48,7 @@ public:
SCROLL_WINDOW_DOWN_HALF_SCREEN,
SCROLL_WINDOW_UP_WHOLE_SCREEN,
SCROLL_WINDOW_DOWN_WHOLE_SCREEN,
ENTER_COMMAND_LINE_PROMPT,
COMMAND_COUNT,
};

View File

@ -49,6 +49,7 @@ void DefaultCommandMap::build()
dcm->add("j", Command::GO_DOWN, nullptr, false);
dcm->add("k", Command::GO_UP, nullptr, false);
dcm->add("l", Command::GO_RIGHT, nullptr, false);
dcm->add(":", Command::ENTER_COMMAND_LINE_PROMPT, nullptr, false);
dcm->add("x", Command::DELETE_CHAR, nullptr, false);
dcm->add("X", Command::DELETE_CHAR_BACK, nullptr, false);

View File

@ -288,11 +288,6 @@ void Window::handle_keypress(uint32_t keyval)
m_command_input.clear();
m_command_invalid = false;
}
else if (keycode == ':')
{
m_command_buffer_pane->clear();
change_focus(m_command_buffer_pane);
}
else
{
m_command_input.push_back(ctrl_keyval);
@ -441,6 +436,10 @@ void Window::execute_command(const Command & command)
case Command::SCROLL_WINDOW_DOWN_WHOLE_SCREEN:
m_focused_buffer_pane->scroll_window_down(ScrollMode::WHOLE_SCREEN);
break;
case Command::ENTER_COMMAND_LINE_PROMPT:
m_command_buffer_pane->clear();
change_focus(m_command_buffer_pane);
break;
}
}