mirror of
https://github.com/panda3d/panda3d.git
synced 2025-09-30 00:32:57 -04:00
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:
parent
0c1fa6a765
commit
835a895c51
@ -134,15 +134,11 @@ 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;
|
result._xpos = cpos.x;
|
||||||
if (GetClientRect(_hWnd, &view_rect)) {
|
result._ypos = cpos.y;
|
||||||
result._in_window = PtInRect(&view_rect, cpos);
|
((GraphicsWindowInputDevice &)_input_devices[0]).set_pointer(result._in_window, result._xpos, result._ypos, time);
|
||||||
result._xpos = cpos.x;
|
|
||||||
result._ypos = cpos.y;
|
|
||||||
((GraphicsWindowInputDevice &)_input_devices[0]).set_pointer(result._in_window, result._xpos, result._ypos, time);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user