Add ':' command to focus command buffer pane
This commit is contained in:
parent
9d150524fb
commit
12c034fb8f
@ -748,4 +748,5 @@ void BufferPane::set_command_mode()
|
|||||||
{
|
{
|
||||||
m_command_mode = true;
|
m_command_mode = true;
|
||||||
set_show_status_bar(false);
|
set_show_status_bar(false);
|
||||||
|
enter_insert_mode(Window::EnterInsertModeMode::START_OF_CHAR);
|
||||||
}
|
}
|
||||||
|
@ -273,7 +273,14 @@ void Window::handle_keyval(uint32_t keyval)
|
|||||||
{
|
{
|
||||||
if (keyval == '\033')
|
if (keyval == '\033')
|
||||||
{
|
{
|
||||||
m_focused_buffer_pane->exit_insert_mode();
|
if (m_focused_buffer_pane == m_command_buffer_pane)
|
||||||
|
{
|
||||||
|
change_focus(m_buffer_pane);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_focused_buffer_pane->exit_insert_mode();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (keyval < 0xFFu)
|
else if (keyval < 0xFFu)
|
||||||
{
|
{
|
||||||
@ -290,6 +297,9 @@ void Window::handle_keyval(uint32_t keyval)
|
|||||||
case '$':
|
case '$':
|
||||||
m_focused_buffer_pane->cursor_move(CursorMovement::EOL);
|
m_focused_buffer_pane->cursor_move(CursorMovement::EOL);
|
||||||
break;
|
break;
|
||||||
|
case ':':
|
||||||
|
change_focus(m_command_buffer_pane);
|
||||||
|
break;
|
||||||
case 'A':
|
case 'A':
|
||||||
m_focused_buffer_pane->enter_insert_mode(EnterInsertModeMode::END_OF_LINE);
|
m_focused_buffer_pane->enter_insert_mode(EnterInsertModeMode::END_OF_LINE);
|
||||||
break;
|
break;
|
||||||
@ -490,3 +500,11 @@ uint32_t Window::get_shifted(uint32_t keysym)
|
|||||||
|
|
||||||
return 0u;
|
return 0u;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Window::change_focus(std::shared_ptr<BufferPane> buffer_pane)
|
||||||
|
{
|
||||||
|
m_focused_buffer_pane->set_focused(false);
|
||||||
|
m_focused_buffer_pane = buffer_pane;
|
||||||
|
m_focused_buffer_pane->set_focused(true);
|
||||||
|
request_redraw();
|
||||||
|
}
|
||||||
|
@ -72,6 +72,7 @@ protected:
|
|||||||
void handle_keyval(uint32_t keyval);
|
void handle_keyval(uint32_t keyval);
|
||||||
uint32_t get_keyval(SDL_Keycode keysym);
|
uint32_t get_keyval(SDL_Keycode keysym);
|
||||||
uint32_t get_shifted(uint32_t keysym);
|
uint32_t get_shifted(uint32_t keysym);
|
||||||
|
void change_focus(std::shared_ptr<BufferPane> buffer_pane);
|
||||||
|
|
||||||
SDL_Window * m_window;
|
SDL_Window * m_window;
|
||||||
bool m_exit_requested;
|
bool m_exit_requested;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user