diff --git a/tools/etcpmon/etcpmon_gui.c b/tools/etcpmon/etcpmon_gui.c index d53a4d0b..c549f8f4 100644 --- a/tools/etcpmon/etcpmon_gui.c +++ b/tools/etcpmon/etcpmon_gui.c @@ -972,6 +972,31 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM l return 0; } break; + case WM_KEYDOWN: + if (app) { + switch (wParam) { + case VK_TAB: { + HWND hFocus = GetFocus(); + if (hFocus == app->hEditAddr) { + SetFocus(app->hEditPort); + int len = GetWindowTextLengthA(app->hEditPort); + SendMessageA(app->hEditPort, EM_SETSEL, len, len); + } else if (hFocus == app->hEditPort) { + SetFocus(app->hEditAddr); + int len = GetWindowTextLengthA(app->hEditAddr); + SendMessageA(app->hEditAddr, EM_SETSEL, len, len); + } + return 0; + } + case VK_RETURN: + if (!app->isConnected) OnConnect(app); + return 0; + case VK_ESCAPE: + if (app->isConnected) OnDisconnect(app); + return 0; + } + } + break; case WM_DESTROY: PostQuitMessage(0);