to avoid calling term_out() during a drag-select, it's false to
assume that all drags are selects - some are xterm mouse-reported
drags, and term_out absolutely _should_ be called in those so that
the application can show the dragged object moving. Should now be
fixed.
git-svn-id: svn://svn.tartarus.org/sgt/putty@1590
cda61777-01e9-0310-a592-
d414129be87e
timer_id = 0;
}
HideCaret(hwnd);
- if (GetCapture() != hwnd)
+ if (GetCapture() != hwnd ||
+ (send_raw_mouse && !(cfg.mouse_override && is_shift_pressed())))
term_out();
term_update();
ShowCaret(hwnd);
return FALSE;
}
+static int is_shift_pressed(void)
+{
+ BYTE keystate[256];
+ int r = GetKeyboardState(keystate);
+ if (!r)
+ return FALSE;
+ if (keystate[VK_SHIFT] & 0x80)
+ return TRUE;
+ return FALSE;
+}
+
static int resizing;
static LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
case WM_TIMER:
if (pending_netevent)
enact_pending_netevent();
- if (GetCapture() != hwnd)
+ if (GetCapture() != hwnd ||
+ (send_raw_mouse && !(cfg.mouse_override && is_shift_pressed())))
term_out();
noise_regular();
HideCaret(hwnd);