From fc80eaaecf3592a7bafb52c858c50107eb691345 Mon Sep 17 00:00:00 2001 From: John Hood Date: Mon, 8 Jun 2015 21:57:08 -0400 Subject: [PATCH] Show the escape key properly when server unavailable. Fixes #624. Signed-off-by: John Hood --- src/frontend/stmclient.cc | 1 + src/frontend/terminaloverlay.cc | 3 +-- src/frontend/terminaloverlay.h | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/frontend/stmclient.cc b/src/frontend/stmclient.cc index a57198c..9e4d916 100644 --- a/src/frontend/stmclient.cc +++ b/src/frontend/stmclient.cc @@ -186,6 +186,7 @@ void STMClient::init( void ) tmp = string( escape_key_name_buf ); wstring escape_key_name = std::wstring(tmp.begin(), tmp.end()); escape_key_help = L"Commands: Ctrl-Z suspends, \".\" quits, " + escape_pass_name + L" gives literal " + escape_key_name; + overlays.get_notification_engine().set_escape_key_string( tmp ); } wchar_t tmp[ 128 ]; swprintf( tmp, 128, L"Nothing received from server on UDP port %s.", port.c_str() ); diff --git a/src/frontend/terminaloverlay.cc b/src/frontend/terminaloverlay.cc index 9c68d7b..6cdb0dd 100644 --- a/src/frontend/terminaloverlay.cc +++ b/src/frontend/terminaloverlay.cc @@ -233,10 +233,9 @@ void NotificationEngine::apply( Framebuffer &fb ) const explanation = reply_message; } - const static char quit_keystroke[] = " [To quit: Ctrl-^ .]"; const static char blank[] = ""; - const char *keystroke_str = show_quit_keystroke ? quit_keystroke : blank; + const char *keystroke_str = show_quit_keystroke ? escape_key_string.c_str() : blank; if ( message.empty() && (!time_expired) ) { return; diff --git a/src/frontend/terminaloverlay.h b/src/frontend/terminaloverlay.h index f6109c8..7050eed 100644 --- a/src/frontend/terminaloverlay.h +++ b/src/frontend/terminaloverlay.h @@ -145,6 +145,7 @@ namespace Overlay { private: uint64_t last_word_from_server; uint64_t last_acked_state; + string escape_key_string; wstring message; bool message_is_network_exception; uint64_t message_expiration; @@ -174,6 +175,13 @@ namespace Overlay { show_quit_keystroke = s_show_quit_keystroke; } + void set_escape_key_string( const string &s_name ) + { + char tmp[ 128 ]; + snprintf( tmp, sizeof tmp, " [To quit: %s .]", s_name.c_str() ); + escape_key_string = tmp; + } + void set_network_exception( const std::exception &e ) { wchar_t tmp[ 128 ];