X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/21d2b241875c072a8700e838ae0da677a7b9d428..5ecd7ad009cc5148c67b9d665f79a64083fae254:/window.c?ds=sidebyside diff --git a/window.c b/window.c index aac6ac6a..609e3b6c 100644 --- a/window.c +++ b/window.c @@ -78,6 +78,7 @@ #define WHEEL_DELTA 120 #endif +static Mouse_Button translate_button(Mouse_Button button); static LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); static int TranslateKey(UINT message, WPARAM wParam, LPARAM lParam, unsigned char *output); @@ -272,8 +273,17 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) char *p; int got_host = 0; - default_protocol = DEFAULT_PROTOCOL; - default_port = DEFAULT_PORT; + default_protocol = be_default_protocol; + /* Find the appropriate default port. */ + { + int i; + default_port = 0; /* illegal */ + for (i = 0; backends[i].backend != NULL; i++) + if (backends[i].protocol == default_protocol) { + default_port = backends[i].backend->default_port; + break; + } + } cfg.logtype = LGTYP_NONE; do_defaults(NULL, &cfg); @@ -902,11 +912,12 @@ void connection_fatal(void *frontend, char *fmt, ...) vsprintf(stuff, fmt, ap); va_end(ap); MessageBox(hwnd, stuff, "PuTTY Fatal Error", MB_ICONERROR | MB_OK); - if (cfg.close_on_exit == COE_ALWAYS) + if (cfg.close_on_exit == FORCE_ON) PostQuitMessage(1); else { session_closed = TRUE; - SetWindowText(hwnd, "PuTTY (inactive)"); + set_icon(NULL, "PuTTY (inactive)"); + set_title(NULL, "PuTTY (inactive)"); } } @@ -946,11 +957,12 @@ static void enact_pending_netevent(void) if (ret == 0 && !session_closed) { /* Abnormal exits will already have set session_closed and taken * appropriate action. */ - if (cfg.close_on_exit == COE_ALWAYS || - cfg.close_on_exit == COE_NORMAL) PostQuitMessage(0); + if (cfg.close_on_exit == FORCE_ON || + cfg.close_on_exit == AUTO) PostQuitMessage(0); else { session_closed = TRUE; - SetWindowText(hwnd, "PuTTY (inactive)"); + set_icon(NULL, "PuTTY (inactive)"); + set_title(NULL, "PuTTY (inactive)"); MessageBox(hwnd, "Connection closed by remote host", "PuTTY", MB_OK | MB_ICONINFORMATION); } @@ -1549,7 +1561,8 @@ static void click(Mouse_Button b, int x, int y, int shift, int ctrl, int alt) if (send_raw_mouse && !(cfg.mouse_override && shift)) { lastbtn = MBT_NOTHING; - term_mouse(term, b, MA_CLICK, x, y, shift, ctrl, alt); + term_mouse(term, b, translate_button(b), MA_CLICK, + x, y, shift, ctrl, alt); return; } @@ -1562,7 +1575,8 @@ static void click(Mouse_Button b, int x, int y, int shift, int ctrl, int alt) lastact = MA_CLICK; } if (lastact != MA_NOTHING) - term_mouse(term, b, lastact, x, y, shift, ctrl, alt); + term_mouse(term, b, translate_button(b), lastact, + x, y, shift, ctrl, alt); lasttime = thistime; } @@ -1570,7 +1584,7 @@ static void click(Mouse_Button b, int x, int y, int shift, int ctrl, int alt) * Translate a raw mouse button designation (LEFT, MIDDLE, RIGHT) * into a cooked one (SELECT, EXTEND, PASTE). */ -Mouse_Button translate_button(void *frontend, Mouse_Button button) +static Mouse_Button translate_button(Mouse_Button button) { if (button == MBT_LEFT) return MBT_SELECT; @@ -2041,7 +2055,7 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, is_alt_pressed()); SetCapture(hwnd); } else { - term_mouse(term, button, MA_RELEASE, + term_mouse(term, button, translate_button(button), MA_RELEASE, TO_CHR_X(X_POS(lParam)), TO_CHR_Y(Y_POS(lParam)), wParam & MK_SHIFT, wParam & MK_CONTROL, is_alt_pressed()); @@ -2066,7 +2080,8 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, b = MBT_MIDDLE; else b = MBT_RIGHT; - term_mouse(term, b, MA_DRAG, TO_CHR_X(X_POS(lParam)), + term_mouse(term, b, translate_button(b), MA_DRAG, + TO_CHR_X(X_POS(lParam)), TO_CHR_Y(Y_POS(lParam)), wParam & MK_SHIFT, wParam & MK_CONTROL, is_alt_pressed()); } @@ -2601,12 +2616,13 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, if (send_raw_mouse && !(cfg.mouse_override && shift_pressed)) { /* send a mouse-down followed by a mouse up */ - term_mouse(term, b, + term_mouse(term, b, translate_button(b), MA_CLICK, TO_CHR_X(X_POS(lParam)), TO_CHR_Y(Y_POS(lParam)), shift_pressed, control_pressed, is_alt_pressed()); - term_mouse(term, b, MA_RELEASE, TO_CHR_X(X_POS(lParam)), + term_mouse(term, b, translate_button(b), + MA_RELEASE, TO_CHR_X(X_POS(lParam)), TO_CHR_Y(Y_POS(lParam)), shift_pressed, control_pressed, is_alt_pressed()); } else {