From fe0a4f0d11362fd89d35067847cefe12fb249d68 Mon Sep 17 00:00:00 2001 From: Maxime Coste Date: Tue, 15 Oct 2013 18:50:43 +0100 Subject: [PATCH] Reset normal mode when changing the current editor --- src/client.cc | 7 ++++++- src/client.hh | 2 ++ src/context.cc | 2 ++ src/context.hh | 2 +- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/client.cc b/src/client.cc index 2f4323bc..3e92727c 100644 --- a/src/client.cc +++ b/src/client.cc @@ -937,7 +937,7 @@ private: InputMode& InputMode::reset_normal_mode() { - m_client.change_input_mode(new InputModes::Normal(m_client)); + m_client.reset_normal_mode(); return *m_client.m_mode; } @@ -1090,4 +1090,9 @@ void Client::redraw_ifn() } } +void Client::reset_normal_mode() +{ + change_input_mode(new InputModes::Normal(*this)); +} + } diff --git a/src/client.hh b/src/client.hh index b7cbe745..3cbb15d9 100644 --- a/src/client.hh +++ b/src/client.hh @@ -85,6 +85,8 @@ public: void redraw_ifn(); UserInterface& ui() const { return *m_ui; } + + void reset_normal_mode(); private: void change_input_mode(InputMode* new_mode); diff --git a/src/context.cc b/src/context.cc index c36984e6..513bd6cb 100644 --- a/src/context.cc +++ b/src/context.cc @@ -153,6 +153,8 @@ void Context::change_editor(Editor& editor) window().set_dimensions(ui().dimensions()); window().hooks().run_hook("WinDisplay", buffer().name(), *this); } + if (has_client()) + client().reset_normal_mode(); } } diff --git a/src/context.hh b/src/context.hh index bc34de47..07e4ffa1 100644 --- a/src/context.hh +++ b/src/context.hh @@ -57,7 +57,7 @@ struct Context void forget_jumps_to_buffer(Buffer& buffer); private: - safe_ptr m_editor; + safe_ptr m_editor; safe_ptr m_client; using JumpList = std::vector;