windisplay: don't adjust in_window during get_pointer

This restores the old behaviour from before 29a08932ea92bcf0e953994c524cafc1717930b5, which makes in_window true during pointer capture (ie. click-and-drag) even if the cursor leaves the window.

X11 behaviour is already not to adjust in_window.

Fixes #363
This commit is contained in:
rdb 2018-07-07 22:55:45 +02:00
parent 0c1fa6a765
commit 835a895c51

View File

@ -134,17 +134,13 @@ get_pointer(int device) const {
// We recheck this immediately to get the most up-to-date value. // We recheck this immediately to get the most up-to-date value.
POINT cpos; POINT cpos;
if (device == 0 && GetCursorPos(&cpos) && ScreenToClient(_hWnd, &cpos)) { if (device == 0 && result._in_window && GetCursorPos(&cpos) && ScreenToClient(_hWnd, &cpos)) {
double time = ClockObject::get_global_clock()->get_real_time(); double time = ClockObject::get_global_clock()->get_real_time();
RECT view_rect;
if (GetClientRect(_hWnd, &view_rect)) {
result._in_window = PtInRect(&view_rect, cpos);
result._xpos = cpos.x; result._xpos = cpos.x;
result._ypos = cpos.y; result._ypos = cpos.y;
((GraphicsWindowInputDevice &)_input_devices[0]).set_pointer(result._in_window, result._xpos, result._ypos, time); ((GraphicsWindowInputDevice &)_input_devices[0]).set_pointer(result._in_window, result._xpos, result._ypos, time);
} }
} }
}
return result; return result;
} }