X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/f37caa117ec771aa41b0f03ab351fc4eb97daafd..765c42008aab65bf1b3c2ba7d0eb156ab447386f:/window.c diff --git a/window.c b/window.c index ec27dc88..62e4be75 100644 --- a/window.c +++ b/window.c @@ -1,6 +1,7 @@ #include #include #include +#include #ifndef AUTO_WINSOCK #ifdef WINSOCK_TWO #include @@ -444,7 +445,9 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) { error = back->init (cfg.host, cfg.port, &realhost); if (error) { - sprintf(msg, "Unable to open connection:\n%s", error); + sprintf(msg, "Unable to open connection to\n" + "%.800s\n" + "%s", cfg.host, error); MessageBox(NULL, msg, "PuTTY Error", MB_ICONERROR | MB_OK); return 0; } @@ -1662,7 +1665,8 @@ static LRESULT CALLBACK WndProc (HWND hwnd, UINT message, * have one.) */ void sys_cursor(int x, int y) { - SetCaretPos(x * font_width, y * font_height); + if (has_focus) + SetCaretPos(x * font_width, y * font_height); } /* @@ -2661,7 +2665,21 @@ void fatalbox(char *fmt, ...) { */ void beep(int mode) { if (mode == BELL_DEFAULT) { + /* + * For MessageBeep style bells, we want to be careful of + * timing, because they don't have the nice property of + * PlaySound bells that each one cancels the previous + * active one. So we limit the rate to one per 50ms or so. + */ + static long lastbeep = 0; + long now, beepdiff; + + now = GetTickCount(); + beepdiff = now - lastbeep; + if (beepdiff >= 0 && beepdiff < 50) + return; MessageBeep(MB_OK); + lastbeep = now; } else if (mode == BELL_WAVEFILE) { if (!PlaySound(cfg.bell_wavefile, NULL, SND_ASYNC | SND_FILENAME)) { char buf[sizeof(cfg.bell_wavefile)+80];