X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=window.c;h=4bcc2697e09c75f90ab7299aadbaa56049ddb936;hb=958be97ce76eb774408b2e32cbb1c2afb80026d7;hp=5ea24dcf1f3bc09c5a78c329e768fc07a031dcea;hpb=0fa9d708f76eed17a9b84e81e04794811ccab7ed;p=PuTTY.git diff --git a/window.c b/window.c index 5ea24dcf..4bcc2697 100644 --- a/window.c +++ b/window.c @@ -11,10 +11,12 @@ #endif #endif +#ifndef NO_MULTIMON #if WINVER < 0x0500 #define COMPILE_MULTIMON_STUBS #include #endif +#endif #include #include @@ -723,7 +725,8 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) timer_id = 0; } HideCaret(hwnd); - term_out(); + if (GetCapture() != hwnd) + term_out(); term_update(); ShowCaret(hwnd); @@ -1517,7 +1520,8 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, case WM_TIMER: if (pending_netevent) enact_pending_netevent(); - term_out(); + if (GetCapture() != hwnd) + term_out(); noise_regular(); HideCaret(hwnd); term_update(); @@ -1937,7 +1941,8 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, */ noise_ultralight(lParam); - if (wParam & (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON)) { + if (wParam & (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON) && + GetCapture() == hwnd) { Mouse_Button b; if (wParam & MK_LBUTTON) b = MBT_LEFT; @@ -2429,7 +2434,7 @@ static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, return TRUE; } default: - if (message == wm_mousewheel) { + if (message == wm_mousewheel || message == WM_MOUSEWHEEL) { int shift_pressed=0, control_pressed=0, alt_pressed=0; if (message == WM_MOUSEWHEEL) { @@ -4217,6 +4222,11 @@ void set_iconic(int iconic) */ void move_window(int x, int y) { + if (cfg.resize_action == RESIZE_DISABLED || + cfg.resize_action == RESIZE_FONT || + IsZoomed(hwnd)) + return; + SetWindowPos(hwnd, NULL, x, y, 0, 0, SWP_NOSIZE | SWP_NOZORDER); }