diff --git a/CRT.c b/CRT.c index 6f7481480..7912b203b 100644 --- a/CRT.c +++ b/CRT.c @@ -1036,6 +1036,8 @@ IGNORE_WCASTQUAL_BEGIN sequence[1] = c; define_key(sequence, KEY_ALT('A' + (c - 'a'))); } + define_key("\033[I", KEY_FOCUS_IN); + define_key("\033[O", KEY_FOCUS_OUT); #ifdef HTOP_NETBSD IGNORE_WCASTQUAL_END #undef define_key diff --git a/CRT.h b/CRT.h index 580979865..8740e0963 100644 --- a/CRT.h +++ b/CRT.h @@ -168,6 +168,8 @@ void CRT_handleSIGSEGV(int signal) ATTR_NORETURN; #define KEY_RECLICK KEY_F(32) #define KEY_SHIFT_TAB KEY_F(33) #define KEY_ALT(x) (KEY_F(64 - 26) + ((x) - 'A')) +#define KEY_FOCUS_IN (KEY_MAX + 'I') +#define KEY_FOCUS_OUT (KEY_MAX + 'O') extern const char* CRT_degreeSign; diff --git a/ScreenManager.c b/ScreenManager.c index e7e82e1df..6f3b0598f 100644 --- a/ScreenManager.c +++ b/ScreenManager.c @@ -363,6 +363,9 @@ void ScreenManager_run(ScreenManager* this, Panel** lastFocus, int* lastKey, con ScreenManager_resize(this); continue; } + case KEY_FOCUS_IN: + case KEY_FOCUS_OUT: + break; case KEY_LEFT: case KEY_CTRL('B'): if (this->panelCount < 2) {